เพิ่มการยืนยันตัวตนให้กับเว็บไซต์ WordPress ของคุณด้วยปลั๊กอิน Logto
บทแนะนำนี้จะแสดงวิธีผสาน Logto เข้ากับเว็บไซต์ WordPress ของคุณด้วยปลั๊กอิน WordPress อย่างเป็นทางการของเรา
ข้อกำหนดเบื้องต้น
- บัญชี Logto Cloud หรือ Logto ที่โฮสต์เอง
- สร้างแอปพลิเคชัน Logto แบบดั้งเดิมแล้ว
- โปรเจกต์ WordPress: ทำตาม คู่มือการติดตั้ง WordPress อย่างเป็นทางการ เพื่อเตรียมเว็บไซต์ WordPress ของคุณก่อนดำเนินการต่อ
การผสานระบบ
ติดตั้งปลั๊กอิน
- จากแผงผู้ดูแล WordPress
- จากการอัปโหลด
- ไปที่ ปลั๊กอิน (Plugins) > เพิ่มใหม่ (Add New).
- ค้นหา "Logto" หรือกรอก https://wordpress.org/plugins/logto/ ในช่องค้นหา
- คลิก ติดตั้งตอนนี้ (Install Now)
- คลิก เปิดใช้งาน (Activate)
- ดาวน์โหลดปลั๊กอิน Logto WordPress จากลิงก์ใดลิงก์หนึ่งต่อไปนี้:
- รุ่นล่าสุด (Latest release): ดาวน์โหลดไฟล์ที่มีชื่อในรูปแบบ
logto-plugin-<version>.zip
- ไดเรกทอรีปลั๊กอิน WordPress (WordPress plugin directory): ดาวน์โหลดไฟล์โดยคลิกปุ่ม ดาวน์โหลด (Download)
- รุ่นล่าสุด (Latest release): ดาวน์โหลดไฟล์ที่มีชื่อในรูปแบบ
- ดาวน์โหลดไฟล์ ZIP ของปลั๊กอิน
- ไปที่ ปลั๊กอิน (Plugins) > เพิ่มใหม่ (Add New) ในแผงผู้ดูแล WordPress ของคุณ
- คลิก อัปโหลดปลั๊กอิน (Upload Plugin)
- เลือกไฟล์ ZIP ที่ดาวน์โหลดมาแล้วคลิก ติดตั้งตอนนี้ (Install Now)
- คลิก เปิดใช้งาน (Activate)
ตั้งค่าปลั๊กอิน
ตอนนี้คุณควรจะเห็นเมนู Logto ในแถบด้านข้างของแผงผู้ดูแล WordPress ของคุณ คลิก Logto > Settings เพื่อกำหนดค่าปลั๊กอิน
คุณควรสร้างแอปพลิเคชัน เว็บแบบดั้งเดิม (traditional web) ใน Logto Console ก่อนตั้งค่าปลั๊กอิน หากคุณยังไม่ได้สร้าง โปรดดู การผสาน Logto เข้ากับแอปพลิเคชันของคุณ สำหรับข้อมูลเพิ่มเติม
การตั้งค่าขั้นต่ำที่จำเป็นสำหรับเริ่มต้นใช้งานปลั๊กอินคือ:
- Logto endpoint: จุดปลายทางของ Logto tenant ของคุณ
- App ID: รหัสแอปของแอปพลิเคชัน Logto ของคุณ
- App secret: หนึ่งในรหัสลับแอปที่ถูกต้องของแอปพลิเคชัน Logto ของคุณ
ค่าทั้งหมดนี้สามารถดูได้ที่หน้ารายละเอียดแอปพลิเคชันใน Logto Console
หลังจากกรอกค่าแล้ว คลิก บันทึกการเปลี่ยนแปลง (Save Changes) (เลื่อนลงไปด้านล่างของหน้า หากไม่พบปุ่ม)
ตั้งค่า redirect URI
Redirect URI คือ URL ที่ Logto จะเปลี่ยนเส้นทางผู้ใช้ไปหลังจากยืนยันตัวตนเสร็จ; และ post sign-out redirect URI คือ URL ที่ Logto จะเปลี่ยนเส้นทางผู้ใช้ไปหลังจากออกจากระบบ
นี่คือไดอะแกรมลำดับ (sequence diagram) แบบไม่เป็นทางการเพื่อแสดงขั้นตอนการลงชื่อเข้าใช้:
นี่คือขั้นตอนการออกจากระบบในไดอะแกรมลำดับแบบไม่เป็นทางการ:
หากต้องการเรียนรู้เพิ่มเติมว่าทำไมต้องมีการเปลี่ยนเส้นทาง ดู อธิบายประสบการณ์การลงชื่อเข้าใช้
ในกรณีนี้ คุณต้องตั้งค่าทั้งสอง redirect URI ใน Logto Console ของคุณ วิธีค้นหา redirect URI ให้ไปที่หน้า Logto > Settings ในแผงผู้ดูแล WordPress ของคุณ คุณจะเห็นฟิลด์ Redirect URI และ Post sign-out redirect URI
- คัดลอกค่า Redirect URI และ Post sign-out redirect URI แล้ววางลงในฟิลด์ Redirect URIs และ Post sign-out redirect URIs ใน Logto Console ของคุณ
- คลิก บันทึกการเปลี่ยนแปลง (Save changes) ใน Logto Console
จุดตรวจสอบ: ทดสอบเว็บไซต์ WordPress ของคุณ
ตอนนี้คุณสามารถทดสอบการผสาน Logto ในเว็บไซต์ WordPress ของคุณได้แล้ว:
- เปิดหน้าต่างเบราว์เซอร์แบบไม่ระบุตัวตนหากจำเป็น
- เข้าเว็บไซต์ WordPress ของคุณแล้วคลิก เข้าสู่ระบบ (Log in) หากมี; หรือเข้าหน้าล็อกอินโดยตรง (เช่น
https://example.com/wp-login.php
) - หน้าจะเปลี่ยนเส้นทางไปยังหน้าลงชื่อเข้าใช้ของ Logto
- ดำเนินการลงชื่อเข้าใช้หรือสมัครสมาชิกให้เสร็จสิ้น
- หลังจากยืนยันตัวตนสำเร็จ คุณจะถูกเปลี่ยนเส้นทางกลับไปยังเว็บไซต์ WordPress ของคุณและเข้าสู่ระบบโดยอัตโนมัติ
- คลิก ออกจากระบบ (Log out) เพื่อออกจากระบบเว็บไซต์ WordPress ของคุณ
- คุณจะถูกเปลี่ยนเส้นทางไปยังหน้าออกจากระบบของ Logto แล้วกลับไปยังเว็บไซต์ WordPress ของคุณ
- คุณจะถูกออกจากระบบเว็บไซต์ WordPress ของคุณ
การตั้งค่าการยืนยันตัวตน (Authentication)
แม้ว่าปลั๊กอินจะใช้งานได้ทันทีโดยไม่ต้องตั้งค่าเพิ่มเติม คุณสามารถปรับแต่งการตั้งค่าการยืนยันตัวตนในหน้าตั้งค่าปลั๊กอิน Logto เพื่อให้เหมาะกับความต้องการของคุณมากขึ้น
ขอบเขต (Scopes)
Logto ใช้ขอบเขต (Scopes) เพื่อควบคุมว่าข้อมูลใดจะถูกแชร์กับแอปพลิเคชันของคุณ ปลั๊กอิน WordPress ของ Logto ใช้ Logto PHP SDK เพื่อจัดการกระบวนการยืนยันตัวตน ซึ่งรวมขอบเขตต่อไปนี้โดยค่าเริ่มต้น:
openid
: ขอบเขตพื้นฐานที่จำเป็นสำหรับ OpenID Connectprofile
: เพื่อรับข้อมูลโปรไฟล์พื้นฐานของผู้ใช้offline_access
: เพื่อรับโทเค็นรีเฟรช (Refresh token) สำหรับการเข้าถึงแบบออฟไลน์
ดูข้อมูลเพิ่มเติมเกี่ยวกับขอบเขตได้ที่ ขอบเขตและการอ้างสิทธิ์ (Scopes and claims)
ปลั๊กอินยังเพิ่มขอบเขตเพิ่มเติมอีกสองรายการโดยค่าเริ่มต้น:
email
: เพื่อรับที่อยู่อีเมลของผู้ใช้roles
: เพื่อรับบทบาท (Roles) ของผู้ใช้ใน Logto
ขอบเขตทั้งสองนี้ใช้สำหรับแมปอีเมลและบทบาทของ Logto กับอีเมลและบทบาทของ WordPress คุณสามารถปรับแต่งขอบเขตได้โดยแก้ไขฟิลด์ Scopes ในหน้าตั้งค่าปลั๊กอิน
หากคุณลบขอบเขต email
หรือ roles
ฟีเจอร์บางอย่างของปลั๊กอินจะไม่ทำงานอย่างถูกต้อง
พารามิเตอร์เพิ่มเติม (Extra params)
คุณอาจต้องการเพิ่มพารามิเตอร์เพิ่มเติมในคำขอการยืนยันตัวตนเพื่อปรับแต่งกระบวนการยืนยันตัวตน เช่น คุณสามารถเพิ่มพารามิเตอร์ first_screen
เพื่อกำหนดว่าจะให้แสดงหน้าจอใดก่อนในกระบวนการยืนยันตัวตน
ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์เพิ่มเติมได้ที่ พารามิเตอร์การยืนยันตัวตน (Authentication parameters)
ต้องการอีเมลที่ได้รับการยืนยัน (Require verified email)
โดยค่าเริ่มต้น ปลั๊กอินจะกำหนดให้ผู้ใช้ต้องมีอีเมลที่ได้รับการยืนยันใน Logto เพื่อเข้าสู่เว็บไซต์ WordPress ของคุณ หากผู้ใช้พยายามเข้าสู่ระบบโดยไม่มีอีเมลที่ได้รับการยืนยัน ปลั๊กอินจะแสดงข้อผิดพลาด
คุณสามารถปิดฟีเจอร์นี้ได้โดยยกเลิกการเลือกตัวเลือก Require verified email ในหน้าตั้งค่าปลั๊กอิน
ต้องการรหัสองค์กร (Require organization ID)
คุณสามารถกำหนดให้ผู้ใช้ต้องเป็นสมาชิกขององค์กรที่ระบุใน Logto เพื่อเข้าสู่เว็บไซต์ WordPress ของคุณ เมื่อระบุรหัสองค์กรแล้ว ปลั๊กอินจะตรวจสอบว่าผู้ใช้มีรหัสองค์กรที่ระบุในโทเค็น ID หรือไม่ หากไม่มีจะเกิดข้อผิดพลาด
ดูข้อมูลเพิ่มเติมเกี่ยวกับองค์กรได้ที่ องค์กร (Organizations)
การตั้งค่าการอนุญาต (Authorization)
นอกจากการยืนยันตัวตนแล้ว Logto ยังมีฟีเจอร์การอนุญาต เช่น การควบคุมการเข้าถึงตามบทบาท (RBAC) แม้คุณจะต้องเขียนโค้ดเองหากพัฒนาแอปของคุณเอง แต่ปลั๊กอิน WordPress ของ Logto มีวิธีแมปบทบาท Logto กับ บทบาท WordPress ในตัว
การแมปบทบาท (Role mapping)
ปลั๊กอิน WordPress ของ Logto อนุญาตให้คุณแมปบทบาท Logto กับบทบาท WordPress ได้ ซึ่งหมายความว่าคุณสามารถกำหนดบทบาทต่าง ๆ ให้กับผู้ใช้ใน Logto และปลั๊กอินจะกำหนดบทบาท WordPress ที่สอดคล้องกันให้กับผู้ใช้เหล่านั้นโดยอัตโนมัติเมื่อเข้าสู่ระบบ
ในการแมปบทบาท ให้คลิก Add ในส่วน Role mapping เพื่อเพิ่มการแมปบทบาทใหม่ เช่น หากคุณต้องการแมปบทบาท group:editors
ใน Logto กับบทบาท Editor
ใน WordPress ให้เพิ่มการแมปบทบาทใหม่โดยใช้ค่าต่อไปนี้:
- บทบาท Logto:
group:editors
- บทบาท WordPress:
editor
(slug ของบทบาทEditor
ใน WordPress)
คุณสามารถดู slug ของบทบาท WordPress ทั้งหมดได้ที่เอกสาร Roles and Capabilities
Slug ของบทบาทมีผลกับตัวพิมพ์เล็ก-ใหญ่ หากคุณกรอกชื่อบทบาทเป็น Editor
แทนที่จะเป็น editor
การแมปบทบาทจะไม่ทำงาน
จากนั้นไปที่ Logto Console แล้วคลิก Roles ที่แถบด้านซ้าย สร้างบทบาทใหม่ชื่อ group:editors
และกำหนดให้กับผู้ใช้ จากนั้นเข้าสู่เว็บไซต์ WordPress ด้วยผู้ใช้นั้น คุณจะเห็นว่าผู้ใช้ได้รับบทบาท Editor
ใน WordPress
หากผู้ใช้ได้เข้าสู่เว็บไซต์ WordPress แล้ว การแมปบทบาทจะไม่มีผลจนกว่าผู้ใช้จะออกจากระบบและเข้าสู่ระบบใหม่
คุณยังสามารถเพิ่มการแมปบทบาทหลายรายการเพื่อแมปบทบาท Logto หลายรายการกับบทบาท WordPress ได้ ขณะนี้ปลั๊กอินจะพยายามแมปบทบาทตามลำดับความสำคัญ เช่น หากคุณมีการแมปบทบาทดังนี้:
- บทบาท Logto:
group:editors
, บทบาท WordPress:editor
- บทบาท Logto:
group:authors
, บทบาท WordPress:author
- บทบาท Logto:
group:subscribers
, บทบาท WordPress:subscriber
และผู้ใช้มีทั้งบทบาท group:editors
และ group:authors
ใน Logto ผู้ใช้จะได้รับบทบาท Editor
ใน WordPress
การตั้งค่าขั้นสูง
จดจำเซสชัน (Remember session)
โดยค่าเริ่มต้น ปลั๊กอินจะจดจำเซสชันของผู้ใช้เป็นเวลา 2 สัปดาห์ หมายความว่าหากผู้ใช้เข้าสู่เว็บไซต์ WordPress ของคุณ จะไม่ถูกขอให้เข้าสู่ระบบอีกเป็นเวลา 2 สัปดาห์ คุณสามารถลดเวลานี้เหลือ 2 วันได้โดยยกเลิกการเลือกตัวเลือก Remember session ในหน้าตั้งค่าปลั๊กอิน
ซิงค์โปรไฟล์ (Sync profile)
โดยค่าเริ่มต้น ปลั๊กอินจะซิงค์โปรไฟล์ของผู้ใช้ทุกครั้งที่เข้าสู่ระบบ หมายความว่าหากผู้ใช้เข้าสู่เว็บไซต์ WordPress โปรไฟล์ของเขาจะได้รับการอัปเดตด้วยข้อมูลล่าสุดจาก Logto คุณสามารถปิดฟีเจอร์นี้ได้โดยยกเลิกการเลือกตัวเลือก Sync profile ในหน้าตั้งค่าปลั๊กอิน
หากคุณปิดฟีเจอร์นี้ การแมปบทบาทจะมีผลเฉพาะเมื่อผู้ใช้เข้าสู่ระบบครั้งแรกเท่านั้น
การเข้าสู่ระบบด้วยฟอร์ม WordPress (WordPress form login)
โดยค่าเริ่มต้น คุณสามารถเติม ?form=1
ต่อท้าย URL เข้าสู่ระบบ WordPress เพื่อใช้ฟอร์มเข้าสู่ระบบของ WordPress ได้ ฟีเจอร์นี้เหมาะสำหรับการทดสอบ แต่คุณสามารถปิดได้หากไม่ต้องการให้ผู้ใช้เข้าสู่ระบบด้วยฟอร์ม WordPress
กลยุทธ์ชื่อผู้ใช้ (Username strategy)
มีหลายวิธีในการสร้างชื่อผู้ใช้สำหรับผู้ใช้ใน WordPress โดยทั่วไปปลอดภัยที่จะใช้กลยุทธ์เริ่มต้นเมื่อคุณใช้ email เป็นตัวระบุเฉพาะของผู้ใช้
การแก้ไขปัญหา
Callback URL แสดง 404
หาก Callback URL แสดงข้อผิดพลาด 404 อาจเป็นเพราะกฎ rewrite ของ WordPress ล้าสมัยและต้องรีเฟรชด้วยตนเอง ให้ไปที่ Settings > Permalinks ในแผงผู้ดูแล WordPress (หรือเข้าที่ /wp-admin/options-permalink.php
โดยตรง) แล้วคลิก Save Changes
คำถามที่พบบ่อย
จะเรียกใช้งานลืมรหัสผ่านได้อย่างไร?
มีสองวิธีในการเรียกใช้งานลืมรหัสผ่าน:
- คลิกลิงก์ลืมรหัสผ่านในหน้าลงชื่อเข้าใช้ของ Logto
- เติม
?action=lostpassword
ต่อท้าย URL เข้าสู่ระบบ WordPress เช่นhttps://example.com/wp-login.php?action=lostpassword
ระบบจะเปลี่ยนเส้นทางไปยังหน้าลืมรหัสผ่านของ Logto
จะใช้ฟอร์มเข้าสู่ระบบ WordPress ได้อย่างไร?
โดยค่าเริ่มต้น คุณสามารถเติม ?form=1
ต่อท้าย URL เข้าสู่ระบบ WordPress เพื่อใช้ฟอร์มเข้าสู่ระบบ WordPress เช่น https://example.com/wp-login.php?form=1
หากต้องการปิดฟีเจอร์นี้ ให้ยกเลิกการเลือกตัวเลือก WordPress form login ในหน้าตั้งค่าปลั๊กอิน