ข้ามไปยังเนื้อหาหลัก

เพิ่มการยืนยันตัวตนให้กับเว็บไซต์ WordPress ของคุณด้วยปลั๊กอิน Logto

บทแนะนำนี้จะแสดงวิธีผสาน Logto เข้ากับเว็บไซต์ WordPress ของคุณด้วยปลั๊กอิน WordPress อย่างเป็นทางการของเรา

ข้อกำหนดเบื้องต้น​

การผสานระบบ​

ติดตั้งปลั๊กอิน​

  1. ไปที่ ปลั๊กอิน (Plugins) > เพิ่มใหม่ (Add New).
  2. ค้นหา "Logto" หรือกรอก https://wordpress.org/plugins/logto/ ในช่องค้นหา
  3. คลิก ติดตั้งตอนนี้ (Install Now)
  4. คลิก เปิดใช้งาน (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

  1. คัดลอกค่า Redirect URI และ Post sign-out redirect URI แล้ววางลงในฟิลด์ Redirect URIs และ Post sign-out redirect URIs ใน Logto Console ของคุณ
  2. คลิก บันทึกการเปลี่ยนแปลง (Save changes) ใน Logto Console

จุดตรวจสอบ: ทดสอบเว็บไซต์ WordPress ของคุณ​

ตอนนี้คุณสามารถทดสอบการผสาน Logto ในเว็บไซต์ WordPress ของคุณได้แล้ว:

  1. เปิดหน้าต่างเบราว์เซอร์แบบไม่ระบุตัวตนหากจำเป็น
  2. เข้าเว็บไซต์ WordPress ของคุณแล้วคลิก เข้าสู่ระบบ (Log in) หากมี; หรือเข้าหน้าล็อกอินโดยตรง (เช่น https://example.com/wp-login.php)
  3. หน้าจะเปลี่ยนเส้นทางไปยังหน้าลงชื่อเข้าใช้ของ Logto
  4. ดำเนินการลงชื่อเข้าใช้หรือสมัครสมาชิกให้เสร็จสิ้น
  5. หลังจากยืนยันตัวตนสำเร็จ คุณจะถูกเปลี่ยนเส้นทางกลับไปยังเว็บไซต์ WordPress ของคุณและเข้าสู่ระบบโดยอัตโนมัติ
  6. คลิก ออกจากระบบ (Log out) เพื่อออกจากระบบเว็บไซต์ WordPress ของคุณ
  7. คุณจะถูกเปลี่ยนเส้นทางไปยังหน้าออกจากระบบของ Logto แล้วกลับไปยังเว็บไซต์ WordPress ของคุณ
  8. คุณจะถูกออกจากระบบเว็บไซต์ WordPress ของคุณ

การตั้งค่าการยืนยันตัวตน (Authentication)​

แม้ว่าปลั๊กอินจะใช้งานได้ทันทีโดยไม่ต้องตั้งค่าเพิ่มเติม คุณสามารถปรับแต่งการตั้งค่าการยืนยันตัวตนในหน้าตั้งค่าปลั๊กอิน Logto เพื่อให้เหมาะกับความต้องการของคุณมากขึ้น

ขอบเขต (Scopes)​

Logto ใช้ขอบเขต (Scopes) เพื่อควบคุมว่าข้อมูลใดจะถูกแชร์กับแอปพลิเคชันของคุณ ปลั๊กอิน WordPress ของ Logto ใช้ Logto PHP SDK เพื่อจัดการกระบวนการยืนยันตัวตน ซึ่งรวมขอบเขตต่อไปนี้โดยค่าเริ่มต้น:

  • openid: ขอบเขตพื้นฐานที่จำเป็นสำหรับ OpenID Connect
  • profile: เพื่อรับข้อมูลโปรไฟล์พื้นฐานของผู้ใช้
  • 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

คำถามที่พบบ่อย​

จะเรียกใช้งานลืมรหัสผ่านได้อย่างไร?​

มีสองวิธีในการเรียกใช้งานลืมรหัสผ่าน:

  1. คลิกลิงก์ลืมรหัสผ่านในหน้าลงชื่อเข้าใช้ของ Logto
  2. เติม ?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 ในหน้าตั้งค่าปลั๊กอิน

อ่านเพิ่มเติม​

กระบวนการสำหรับผู้ใช้ปลายทาง: กระบวนการยืนยันตัวตน, กระบวนการบัญชี, และกระบวนการองค์กร ตั้งค่าตัวเชื่อมต่อ การอนุญาต (Authorization)