คำอธิบาย
ED Google Login แทนที่หน้าจอ Login/Register แบบชื่อผู้ใช้-รหัสผ่านแบบเดิมของ WordPress ด้วยปุ่ม “Continue with Google” โดยเชื่อมต่อกับ Google โดยตรงผ่านมาตรฐาน OpenID Connect — ไม่ต้องผ่านปลั๊กอิน Social Login ตัวกลางที่มักขอสิทธิ์เข้าถึงข้อมูลเกินความจำเป็นหรือมีค่าใช้จ่ายรายเดือน
ระบบตรวจสอบลายเซ็นดิจิทัลของ Google ID Token ด้วยตัวเอง (Local RS256 Signature Verification) ใช้ขั้นตอนความปลอดภัยระดับมาตรฐานอุตสาหกรรมอย่าง Authorization Code + PKCE พร้อมป้องกัน CSRF ด้วย State และ Nonce ทำให้มั่นใจได้ว่าไม่มีใครปลอมแปลงการเข้าสู่ระบบได้ แม้แต่บัญชีผู้ดูแลระบบก็ได้รับการป้องกันพิเศษเพิ่มอีกชั้นด้วยระบบ Allowlist
ฟีเจอร์หลัก
🔐 ความปลอดภัยระดับมาตรฐาน OAuth
- ใช้ขั้นตอน Authorization Code + PKCE (มาตรฐานความปลอดภัยเดียวกับที่แอปพลิเคชันระดับองค์กรใช้) ป้องกันการดักจับ Authorization Code ระหว่างทาง
- ตรวจสอบ State และ Nonce ทุกครั้ง ป้องกันการปลอมแปลงคำขอ (CSRF) และการเล่นซ้ำ (Replay Attack)
- ตรวจสอบลายเซ็น ID Token ด้วยตัวเองในเซิร์ฟเวอร์ (RS256) โดยดึงกุญแจสาธารณะจาก Google โดยตรง ไม่เชื่อข้อมูลจากฝั่งเบราว์เซอร์เพียงอย่างเดียว
- จำกัดจำนวนคำขอเข้าสู่ระบบต่อ IP ภายในช่วงเวลาที่กำหนด (Rate Limiting) ป้องกันการโจมตีแบบ Brute Force
🛡️ ปกป้องบัญชีผู้ดูแลระบบเป็นพิเศษ
- Privileged Account Allowlist — บัญชีที่มีสิทธิ์สูง (ผู้ดูแลระบบ, บรรณาธิการ, ผู้เขียน, ผู้จัดการร้านค้า) จะเข้าสู่ระบบผ่าน Google ได้ก็ต่อเมื่ออีเมลอยู่ในรายชื่อที่อนุญาตไว้เท่านั้น ป้องกันไม่ให้บัญชีสำคัญถูกเข้าถึงผ่านช่องทางที่ไม่ได้ตรวจสอบ
- เชื่อมโยงกับบัญชีเดิมที่มีอยู่แล้วได้ก็ต่อเมื่อยืนยันอีเมล Google ตรงกันเท่านั้น ป้องกันการสวมรอยบัญชี
- สวิตช์กู้คืนฉุกเฉิน (
EDGL_EMERGENCY_PASSWORD_LOGIN) เพิ่มใน wp-config.php เพื่อเปิดฟอร์มรหัสผ่านมาตรฐานกลับมาใช้ชั่วคราว เผื่อ Google OAuth มีปัญหาหรือ Client ID/Secret หลุด
👤 สมัครสมาชิกอัตโนมัติอย่างปลอดภัย
- ตรวจจับอัตโนมัติว่าเว็บไซต์ใช้ WooCommerce หรือ Easy Digital Downloads หรือ WordPress ธรรมดา แล้วกำหนด Role ที่ปลอดภัยให้ผู้สมัครใหม่โดยอัตโนมัติ (เช่น Customer สำหรับ WooCommerce, Subscriber สำหรับ EDD/WordPress ทั่วไป) — ไม่มีทางได้สิทธิ์ผู้ดูแลระบบผ่านการสมัครอัตโนมัติเด็ดขาด
- เปิด/ปิดการอนุญาตให้สมัครบัญชีใหม่ผ่าน Google ได้อิสระ
🎨 หน้า Login ที่ปรับแต่งได้
- ออกแบบหน้า Login ใหม่ให้ทันสมัยและใช้งานง่ายบนทุกขนาดหน้าจอ
- อัปโหลดโลโก้แบรนด์ของตัวเองแทนโลโก้ WordPress ได้ผ่าน Media Library (รองรับ PNG โปร่งใส, WebP, SVG)
- ข้อความบนหน้า Login ปรับตามภาษาของเว็บไซต์ (WordPress Site Language) โดยอัตโนมัติ ไม่ต้องตั้งค่าภาษาแยก
📊 บันทึกกิจกรรมแบบเคารพความเป็นส่วนตัว
- หน้า Activity แสดงประวัติการเข้าสู่ระบบล่าสุด (สำเร็จ/ล้มเหลว) พร้อมเวลาและผู้ใช้ที่เกี่ยวข้อง
- เก็บบันทึกอัตโนมัติสูงสุด 30 วัน หรือ 1,000 รายการ (ตัดข้อมูลเก่าทิ้งอัตโนมัติ)
- ไม่เก็บ IP Address แบบดิบ — เข้ารหัสด้วย HMAC-SHA256 ก่อนบันทึกเสมอ เพื่อความเป็นส่วนตัวของผู้เข้าสู่ระบบ
⚙️ ตั้งค่าง่าย ไม่ต้องพึ่งปลั๊กอินอื่น
- หน้าตั้งค่าแบ่งเป็น 4 แท็บชัดเจน: Overview (ภาพรวมสถานะ), Login Page (โลโก้), OAuth & Access (เชื่อมต่อ Google + นโยบายการเข้าถึง), Activity (ประวัติ)
- แสดงสถานะ “Setup status” เป็นขั้นตอน Checklist ให้ทำตามได้ง่าย ไม่หลงทาง
- รองรับการตั้งค่า Client ID/Secret ผ่าน wp-config.php เพื่อความปลอดภัยสูงสุด (ไม่บันทึกไว้ในฐานข้อมูล)
การติดตั้ง
- ติดตั้งและเปิดใช้งานปลั๊กอิน
- ไปที่ Settings → ED Google Login
- สร้าง OAuth 2.0 Web Application ใน Google Cloud Console
- คัดลอก Authorized redirect URI ที่ปลั๊กอินแสดงไว้ ไปวางใน Google Cloud ให้ตรงเป๊ะ
- นำ Client ID และ Client secret มาใส่ในหน้าตั้งค่า (แท็บ OAuth & Access)
- เพิ่มอีเมลผู้ดูแลระบบลงใน Privileged account allowlist
- เปิด Enable Google login แล้วบันทึก
- ทดสอบเข้าสู่ระบบในหน้าต่างเบราว์เซอร์ส่วนตัว (Private/Incognito) ก่อนเสมอ
- ทดสอบผ่านแล้วเท่านั้นถึงค่อยเปิด Disable password login เพื่อบังคับให้ทุกคนใช้ Google เข้าสู่ระบบ
ความเข้ากันได้
| ปลั๊กอิน / บริการ | การทำงานร่วมกัน |
|---|---|
| WooCommerce | ตรวจพบอัตโนมัติ กำหนด Role “Customer” ให้ผู้สมัครใหม่ผ่าน Google |
| Easy Digital Downloads | ตรวจพบอัตโนมัติ กำหนด Role “Subscriber” ให้ผู้สมัครใหม่ |
| WordPress ทั่วไป (ไม่มีปลั๊กอินอีคอมเมิร์ซ) | กำหนด Role “Subscriber” เป็นค่าเริ่มต้น |
| Google Cloud Console | ต้องมีบัญชี Google Cloud (ฟรี) เพื่อสร้าง OAuth Client ID/Secret |
ข้อมูลทางเทคนิค
| รายการ | ข้อมูล |
|---|---|
| ชื่อปลั๊กอิน | ED Google Login |
| เวอร์ชัน | 1.2.6 |
| WordPress ขั้นต่ำ | 6.4 |
| PHP ขั้นต่ำ | 8.0 |
| License | GPL-2.0-or-later |
| ผู้พัฒนา | Expensive Design |
| เว็บไซต์ | expensivedesign.com |

