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

เพิ่มการยืนยันตัวตนให้กับเว็บไซต์ 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)