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

การตั้งค่าบัญชีผู้ใช้ผ่าน Management API

การเชื่อมต่อระบบ

Logto มี Management API หลายรายการสำหรับจัดการบัญชีผู้ใช้ คุณสามารถใช้ API เหล่านี้เพื่อสร้างหน้าตั้งค่าบัญชีแบบบริการตนเองสำหรับผู้ใช้ปลายทาง

สถาปัตยกรรม

  1. ผู้ใช้: ผู้ใช้ปลายทางที่ได้รับการยืนยันตัวตนแล้วซึ่งต้องการเข้าถึงและจัดการการตั้งค่าบัญชีของตน
  2. แอปพลิเคชันฝั่งไคลเอนต์: แอปพลิเคชันฝั่งไคลเอนต์ของคุณที่ให้บริการหน้าตั้งค่าบัญชีแก่ผู้ใช้
  3. แอปพลิเคชันฝั่งเซิร์ฟเวอร์: แอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่ให้บริการ API ตั้งค่าบัญชีแก่ไคลเอนต์ และเชื่อมต่อกับ Logto Management API
  4. Logto: Logto ในฐานะบริการการยืนยันตัวตน (Authentication) และการอนุญาต (Authorization) ให้บริการ Management API สำหรับจัดการบัญชีผู้ใช้

ลำดับขั้นตอน

  1. ผู้ใช้เข้าถึงแอปพลิเคชันฝั่งไคลเอนต์
  2. แอปไคลเอนต์ส่งคำขอการยืนยันตัวตน (Authentication request) ไปยัง Logto และเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าลงชื่อเข้าใช้ของ Logto
  3. ผู้ใช้ลงชื่อเข้าใช้ Logto
  4. ผู้ใช้ที่ได้รับการยืนยันตัวตนแล้วจะถูกเปลี่ยนเส้นทางกลับไปยังแอปไคลเอนต์พร้อมโค้ดการอนุญาต (authorization code)
  5. แอปไคลเอนต์ขอโทเค็นการเข้าถึง (Access token) จาก Logto สำหรับเข้าถึง API ตั้งค่าบัญชีแบบโฮสต์เอง
  6. Logto ออกโทเค็นการเข้าถึงให้แอปไคลเอนต์
  7. แอปไคลเอนต์ส่งคำขอตั้งค่าบัญชีไปยังแอปเซิร์ฟเวอร์พร้อมโทเค็นการเข้าถึงของผู้ใช้
  8. แอปเซิร์ฟเวอร์ตรวจสอบตัวตนและสิทธิ์ของผู้ร้องขอจากโทเค็นการเข้าถึงของผู้ใช้ จากนั้นขอโทเค็นการเข้าถึง Management API จาก Logto
  9. Logto ออกโทเค็นการเข้าถึง Management API ให้แอปเซิร์ฟเวอร์
  10. แอปเซิร์ฟเวอร์ขอข้อมูลผู้ใช้จาก Logto โดยใช้โทเค็นการเข้าถึง Management API
  11. Logto ตรวจสอบตัวตนของเซิร์ฟเวอร์และสิทธิ์ Management API แล้วส่งข้อมูลผู้ใช้กลับ
  12. แอปเซิร์ฟเวอร์ประมวลผลข้อมูลผู้ใช้ตามสิทธิ์ของผู้ร้องขอและส่งรายละเอียดบัญชีผู้ใช้กลับไปยังแอปไคลเอนต์

การเชื่อมต่อ Management API กับแอปฝั่งเซิร์ฟเวอร์

ดูหัวข้อ Management API เพื่อเรียนรู้วิธีเชื่อมต่อ Management API กับแอปพลิเคชันฝั่งเซิร์ฟเวอร์

User Management APIs

โครงสร้างข้อมูลผู้ใช้

ดูหัวข้อ ข้อมูลผู้ใช้และข้อมูลกำหนดเอง เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับโครงสร้างข้อมูลผู้ใช้ใน Logto

Management API สำหรับโปรไฟล์และตัวระบุผู้ใช้

โปรไฟล์และตัวระบุของผู้ใช้เป็นสิ่งสำคัญสำหรับการจัดการผู้ใช้ คุณสามารถใช้ API ต่อไปนี้เพื่อจัดการโปรไฟล์และตัวระบุของผู้ใช้

methodpathdescription
GET/api/users/{userId}รับรายละเอียดผู้ใช้ตาม user ID
PATCH/api/users/{userId}อัปเดตรายละเอียดผู้ใช้
PATCH/api/users/{userId}/profileอัปเดตฟิลด์โปรไฟล์ผู้ใช้ตาม user ID
GET/api/users/{userId}/custom-dataรับข้อมูลกำหนดเองของผู้ใช้ตาม user ID
PATCH/api/users/{userId}/custom-dataอัปเดตข้อมูลกำหนดเองของผู้ใช้ตาม user ID
PATCH/api/users/{userId}/is-suspendedอัปเดตสถานะระงับบัญชีผู้ใช้ตาม user ID

การยืนยันอีเมลและหมายเลขโทรศัพท์

ในระบบ Logto ทั้งอีเมลและหมายเลขโทรศัพท์สามารถใช้เป็นตัวระบุผู้ใช้ได้ ดังนั้นการยืนยันจึงเป็นสิ่งสำคัญ เพื่อรองรับสิ่งนี้ เรามี API สำหรับรหัสยืนยันเพื่อช่วยยืนยันอีเมลหรือหมายเลขโทรศัพท์ที่ให้มา

บันทึก:

โปรดตรวจสอบให้แน่ใจว่ายืนยันอีเมลหรือหมายเลขโทรศัพท์ก่อนอัปเดตโปรไฟล์ผู้ใช้ด้วยอีเมลหรือหมายเลขโทรศัพท์ใหม่

methodpathdescription
POST/api/verifications/verification-codeส่งรหัสยืนยันอีเมลหรือหมายเลขโทรศัพท์
POST/api/verifications/verification-code/verifyยืนยันอีเมลหรือหมายเลขโทรศัพท์ด้วยรหัสยืนยัน

การจัดการรหัสผ่านผู้ใช้

methodpathdescription
POST/api/users/{userId}/password/verifyตรวจสอบรหัสผ่านปัจจุบันของผู้ใช้ตาม user ID
PATCH/api/users/{userId}/passwordอัปเดตรหัสผ่านผู้ใช้ตาม user ID
GET/api/users/{userId}/has-passwordตรวจสอบว่าผู้ใช้มีรหัสผ่านหรือไม่ตาม user ID
บันทึก:

โปรดตรวจสอบรหัสผ่านปัจจุบันของผู้ใช้ก่อนอัปเดตรหัสผ่านใหม่

การจัดการโซเชียลไอดีของผู้ใช้

methodpathdescription
GET/api/users/{userId}รับรายละเอียดผู้ใช้ตาม user ID โซเชียลไอดีจะอยู่ในฟิลด์ identities
POST/api/users/{userId}/identitiesเชื่อมต่อโซเชียลไอดีที่ได้รับการยืนยันกับผู้ใช้ตาม user ID
DELETE/api/users/{userId}/identitiesยกเลิกการเชื่อมต่อโซเชียลไอดีออกจากผู้ใช้ตาม user ID
PUT/api/users/{userId}/identitiesอัปเดตโซเชียลไอดีที่เชื่อมต่อกับผู้ใช้โดยตรงตาม user ID
POST/api/connectors/{connectorId}/authorization-uriรับ authorization URI สำหรับผู้ให้บริการโซเชียลไอดี ใช้ URI นี้เพื่อเริ่มการเชื่อมต่อโซเชียลไอดีใหม่
  1. ผู้ใช้เข้าถึงแอปไคลเอนต์และขอเชื่อมต่อโซเชียลไอดี
  2. แอปไคลเอนต์ส่งคำขอไปยังเซิร์ฟเวอร์เพื่อเชื่อมต่อโซเชียลไอดี
  3. เซิร์ฟเวอร์ส่งคำขอไปยัง Logto เพื่อขอ authorization URI สำหรับผู้ให้บริการโซเชียลไอดี คุณต้องระบุ state parameter และ redirect_uri ของคุณเองในคำขอ และต้องลงทะเบียน redirect_uri กับผู้ให้บริการโซเชียลไอดีล่วงหน้า
  4. Logto ส่งคืน authorization URI ให้เซิร์ฟเวอร์
  5. เซิร์ฟเวอร์ส่ง authorization URI กลับไปยังแอปไคลเอนต์
  6. แอปไคลเอนต์เปลี่ยนเส้นทางผู้ใช้ไปยัง authorization URI ของ IdP
  7. ผู้ใช้ลงชื่อเข้าใช้ IdP
  8. IdP เปลี่ยนเส้นทางผู้ใช้กลับไปยังแอปไคลเอนต์โดยใช้ redirect_uri พร้อม authorization code
  9. แอปไคลเอนต์ตรวจสอบ state และส่งต่อการตอบกลับจาก IdP ไปยังเซิร์ฟเวอร์
  10. เซิร์ฟเวอร์ส่งคำขอไปยัง Logto เพื่อเชื่อมต่อโซเชียลไอดีกับผู้ใช้
  11. Logto รับข้อมูลผู้ใช้จาก IdP โดยใช้ authorization code
  12. IdP ส่งข้อมูลผู้ใช้กลับไปยัง Logto และ Logto เชื่อมต่อโซเชียลไอดีกับผู้ใช้
บันทึก:

มีข้อจำกัดบางประการที่ควรพิจารณาเมื่อเชื่อมต่อโซเชียลไอดีใหม่กับผู้ใช้:

  • Management API ไม่มี session context ใด ๆ ตัวเชื่อมต่อโซเชียลที่ต้องการ session ที่ใช้งานอยู่เพื่อรักษาสถานะการยืนยันตัวตนโซเชียลอย่างปลอดภัยจะไม่สามารถเชื่อมต่อผ่าน Management API ได้ ตัวเชื่อมต่อที่ไม่รองรับได้แก่ apple, OIDC มาตรฐาน และ OAuth 2.0 มาตรฐาน
  • ด้วยเหตุผลเดียวกัน Logto ไม่สามารถตรวจสอบ state parameter ในการตอบกลับการอนุญาตได้ โปรดเก็บ state parameter ในแอปไคลเอนต์ของคุณและตรวจสอบเมื่อได้รับการตอบกลับการอนุญาต
  • คุณต้องลงทะเบียน redirect_uri กับผู้ให้บริการโซเชียลไอดีล่วงหน้า มิฉะนั้น IdP จะไม่เปลี่ยนเส้นทางผู้ใช้กลับไปยังแอปไคลเอนต์ของคุณ IdP ของคุณต้องรองรับ callback redirect_uri มากกว่าหนึ่งรายการ ได้แก่ สำหรับการลงชื่อเข้าใช้ และสำหรับหน้าผูกโปรไฟล์ของคุณเอง

การจัดการไอดีองค์กรของผู้ใช้

methodpathdescription
GET/api/users/{userId}?includeSsoIdentities=trueรับรายละเอียดผู้ใช้ตาม user ID ไอดีองค์กรจะอยู่ในฟิลด์ ssoIdentities เพิ่ม query parameter includeSsoIdentities=true ใน API รายละเอียดผู้ใช้เพื่อแสดงข้อมูลนี้

ขณะนี้ Management API ยังไม่รองรับการเชื่อมหรือยกเลิกการเชื่อมไอดีองค์กรกับผู้ใช้ คุณสามารถแสดงเฉพาะไอดีองค์กรที่เชื่อมกับผู้ใช้เท่านั้น

Personal access token

methodpathdescription
GET/api/users/{userId}/personal-access-tokensรับ personal access token ทั้งหมดของผู้ใช้
POST/api/users/{userId}/personal-access-tokensเพิ่ม personal access token ใหม่ให้ผู้ใช้
DELETE/api/users/{userId}/personal-access-tokens/{name}ลบโทเค็นของผู้ใช้ตามชื่อ
PATCH/api/users/{userId\s}/personal-access-tokens/{name}อัปเดตโทเค็นของผู้ใช้ตามชื่อ

Personal access token เป็นวิธีที่ปลอดภัยสำหรับผู้ใช้ในการให้ โทเค็นการเข้าถึง (Access token) โดยไม่ต้องใช้ข้อมูลรับรองหรือการลงชื่อเข้าใช้แบบโต้ตอบ ดูเพิ่มเติมเกี่ยวกับ การใช้ personal access token

การจัดการการตั้งค่า MFA ของผู้ใช้

methodpathdescription
GET/api/users/{userId}/mfa-verificationsรับการตั้งค่า MFA ของผู้ใช้ตาม user ID
POST/api/users/{userId}/mfa-verificationsตั้งค่า MFA ให้ผู้ใช้ตาม user ID
DELETE/api/users/{userId}/mfa-verifications/{verificationId}ลบการยืนยัน MFA ของผู้ใช้ตาม ID

การลบบัญชีผู้ใช้

methodpathdescription
DELETE/api/users/{userId}ลบบัญชีผู้ใช้ตาม user ID

การจัดการเซสชันของผู้ใช้

methodpathdescription
GET/api/users/{userId}/sessionsรับเซสชันของผู้ใช้ตาม user ID
GET/api/users/{userId}/sessions/{sessionId}รับเซสชันของผู้ใช้ตาม session ID
DELETE/api/users/{userId}/sessions/{sessionId}ลบเซสชันของผู้ใช้ตาม session ID