การตั้งค่าบัญชีโดย Management API
การผสานรวม
Logto มี Management API หลายตัวเพื่อจัดการบัญชีผู้ใช้ คุณสามารถใช้ API เหล่านี้เพื่อสร้างหน้าการตั้งค่าบัญชีที่ผู้ใช้สามารถจัดการได้ด้วยตนเอง
สถาปัตยกรรม
- User: ผู้ใช้ที่ได้รับการยืนยันตัวตนซึ่งต้องการเข้าถึงและจัดการการตั้งค่าบัญชีของตน
- Client application: แอปพลิเคชันของคุณที่ให้บริการหน้าการตั้งค่าบัญชีแก่ผู้ใช้
- Server-side application: แอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่ให้บริการ API การตั้งค่าบัญชีแก่ไคลเอนต์ ทำงานร่วมกับ Logto Management API
- Logto: Logto ในฐานะบริการการยืนยันตัวตนและการอนุญาต ให้บริการ Management API เพื่อจัดการบัญชีผู้ใช้
แผนภาพลำดับ
- ผู้ใช้เข้าถึงแอปพลิเคชันไคลเอนต์
- แอปพลิเคชันไคลเอนต์ส่งคำขอการยืนยันตัวตนไปยัง Logto และเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าลงชื่อเข้าใช้ของ Logto
- ผู้ใช้ลงชื่อเข้าใช้ Logto
- ผู้ใช้ที่ได้รับการยืนยันตัวตนจะถูกเปลี่ยนเส้นทางกลับไปยังแอปพลิเคชันไคลเอนต์พร้อมรหัสการอนุญาต
- แอปพลิเคชันไคลเอนต์ขอโทเค็นการเข้าถึงจาก Logto สำหรับการเข้าถึง API การตั้งค่าบัญชีที่โฮสต์เอง
- Logto ให้โทเค็นการเข้าถึงแก่แอปพลิเคชันไคลเอนต์
- แอปพลิเคชันไคลเอนต์ส่งคำขอการตั้งค่าบัญชีไปยังแอปพลิเคชันฝั่งเซิร์ฟเวอร์พร้อมโทเค็นการเข้าถึงของผู้ใช้
- แอปพลิเคชันฝั่งเซิร์ฟเวอร์ตรวจสอบตัวตนและสิทธิ์ของผู้ร้องขอจากโทเค็นการเข้าถึงของผู้ใช้ จากนั้นขอโทเค็นการเข้าถึง Management API จาก Logto
- Logto ให้โทเค็นการเข้าถึง Management API แก่แอปพลิเคชันฝั่งเซิร์ฟเวอร์
- แอปพลิเคชันฝั่งเซิร์ฟเวอร์ขอข้อมูลผู้ใช้จาก Logto โดยใช้โทเค็นการเข้าถึง Management API
- Logto ตรวจสอบตัวตนของเซิร์ฟเวอร์และสิทธิ์ Management API และส่งคืนข้อมูลผู้ใช้
- แอปพลิเคชันฝั่งเซิร์ฟเวอร์ประมวลผลข้อมูลผู้ใช้ตามสิทธิ์ของผู้ร้องขอและส่งคืนรายละเอียดบัญชีผู้ใช้ไปยังแอปพลิเคชันไคลเอนต์
การผสานรวม Management API กับแอปพลิเคชันฝั่งเซิร์ฟเวอร์
ตรวจสอบส่วน Management API เพื่อเรียนรู้วิธีผสานรวม Management API กับแอปพลิเคชันฝั่งเซิร์ฟเวอร์
User Management APIs
โครงสร้างข้อมูลผู้ใช้
ตรวจสอบส่วน ข้อมูลผู้ใช้และข้อมูลที่กำหนดเอง เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับโครงสร้างข้อมูลผู้ใช้ใน Logto
User profile และ Identifiers Management APIs
โปรไฟล์และตัวระบุของผู้ใช้มีความสำคัญสำหรับการจัดการผู้ใช้ คุณสามารถใช้ API ต่อไปนี้เพื่อจัดการโปรไฟล์และตัวระบุของผู้ใช้
| method | path | description |
|---|---|---|
| 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 รหัสยืนยันเพื่อช่วยยืนยันอีเมลหรือหมายเลขโทรศัพท์ที่ให้มา
ตรวจสอบให้แน่ใจว่าได้ยืนยันอีเมลหรือหมายเลขโทรศัพท์ก่อนที่จะอัปเดตโปรไฟล์ผู้ใช้ด้วยอีเมลหรือหมายเลขโทรศัพท์ใหม่
| method | path | description |
|---|---|---|
| POST | /api/verifications/verification-code | ส่งรหัสยืนยันอีเมลหรือหมายเลขโทรศัพท์ |
| POST | /api/verifications/verification-code/verify | ยืนยันอีเมลหรือหมายเลขโทรศัพท์โดยรหัสยืนยัน |
การจัดการรหัสผ่านผู้ใช้
| method | path | description |
|---|---|---|
| POST | /api/users/{userId}/password/verify | ยืนยันรหัสผ่านปัจจุบันของผู้ใช้โดย user ID |
| PATCH | /api/users/{userId}/password | อัปเดตรหัสผ่านผู้ใช้โดย user ID |
| GET | /api/users/{userId}/has-password | ตรวจสอบว่าผู้ใช้มีรหัสผ่านโดย user ID หรือไม่ |
ตรวจสอบให้แน่ใจว่าได้ยืนยันรหัสผ่านปัจจุบันของผู้ใช้ก่อนที่จะอัปเดตรหัสผ่านของผู้ใช้
การจัดการอัตลักษณ์โซเชียลของผู้ใช้
| method | path | description |
|---|---|---|
| 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 | รับ URI การอนุญาตสำหรับผู้ให้บริการอัตลักษณ์โซเชียล ใช้ URI นี้เพื่อเริ่มการเชื่อมต่ออัตลักษณ์โซเชียลใหม่ |
- ผู้ใช้เข้าถึงแอปพลิเคชันไคลเอนต์และขอเชื่อมโยงอัตลักษณ์โซเชียล
- แอปพลิเคชันไคลเอนต์ส่งคำขอไปยังเซิร์ฟเวอร์เพื่อเชื่อมโยงอัตลักษณ์โซเชียล
- เซิร์ฟเวอร์ส่งคำขอไปยัง Logto เพื่อรับ URI การอนุญาตสำหรับผู้ให้บริการอัตลักษณ์โซเชียล คุณต้องระบุพารามิเตอร์
stateและredirect_uriของคุณเองในคำขอ ตรวจสอบให้แน่ใจว่าได้ลงทะเบียนredirect_uriในผู้ให้บริการอัตลักษณ์โซเชียล - Logto ส่งคืน URI การอนุญาตไปยังเซิร์ฟเวอร์
- เซิร์ฟเวอร์ส่งคืน URI การอนุญาตไปยังแอปพลิเคชันไคลเอนต์
- แอปพลิเคชันไคลเอนต์เปลี่ยนเส้นทางผู้ใช้ไปยัง URI การอนุญาตของ IdP
- ผู้ใช้ลงชื่อเข้าใช้ IdP
- IdP เปลี่ยนเส้นทางผู้ใช้กลับไปยังแอปพลิเคชันไคลเอนต์โดยใช้
redirect_uriพร้อมรหัสการอนุญาต - แอปพลิเคชันไคลเอนต์ตรวจสอบ
stateและส่งต่อการตอบสนองการอนุญาตของ IdP ไปยังเซิร์ฟเวอร์ - เซิร์ฟเวอร์ส่งคำขอไปยัง Logto เพื่อเชื่อมโยงอัตลักษณ์โซเชียลกับผู้ใช้
- Logto รับข้อมูลผู้ใช้จาก IdP โดยใช้รหัสการอนุญาต
- IdP ส่งคืนข้อมูลผู้ใช้ไปยัง Logto และ Logto เชื่อมโยงอัตลักษณ์โซเชียลกับผู้ใช้
มีข้อจำกัดบางประการที่ต้องพิจารณาเมื่อเชื่อมโยงอัตลักษณ์โซเชียลใหม่กับผู้ใช้:
- Management API ไม่มีบริบทเซสชันใด ๆ ตัวเชื่อมต่อโซเชียลใด ๆ ที่ต้องการเซสชันที่ใช้งานอยู่เพื่อรักษาสถานะการยืนยันตัวตนโซเชียลอย่างปลอดภัยไม่สามารถเชื่อมโยงผ่าน Management API ได้ ตัวเชื่อมต่อที่ไม่รองรับรวมถึง apple, OIDC มาตรฐาน และตัวเชื่อมต่อ OAuth 2.0 มาตรฐาน
- ด้วยเหตุผลเดียวกัน Logto ไม่สามารถตรวจสอบพารามิเตอร์
stateในการตอบสนองการอนุญาตได้ ตรวจสอบให้แน่ใจว่าได้จัดเก็บพารามิเตอร์stateในแอปไคลเอนต์ของคุณและตรวจสอบเมื่อได้รับการตอบสนองการอนุญาต - คุณต้องลงทะเบียน
redirect_uriกับผู้ให้บริการอัตลักษณ์โซเชียลล่วงหน้า มิฉะนั้น IdP โซเชียลจะไม่เปลี่ยนเส้นทางผู้ใช้กลับไปยังแอปไคลเอนต์ของคุณ IdP โซเชียลของคุณต้องยอมรับredirect_uriการเรียกกลับมากกว่าหนึ่งรายการ หนึ่งสำหรับการลงชื่อเข้าใช้ผู้ใช้ หนึ่งสำหรับหน้าการเชื่อมโยงโปรไฟล์ของคุณเอง
การจัดการอัตลักษณ์องค์กรของผู้ใช้
| method | path | description |
|---|---|---|
| GET | /api/users/{userId}?includeSsoIdentities=true | รับรายละเอียดผู้ใช้โดย user ID อัตลักษณ์องค์กรสามารถพบได้ในฟิลด์ ssoIdentities เพิ่มพารามิเตอร์การค้นหา includeSsoIdentities=true ใน API รายละเอียดผู้ใช้เพื่อรวมอัตลักษณ์องค์กร |
ปัจจุบัน Management API ไม่รองรับการเชื่อมโยงหรือยกเลิกการเชื่อมโยงอัตลักษณ์องค์กรกับผู้ใช้ คุณสามารถแสดงอัตลักษณ์องค์กรที่เชื่อมโยงกับผู้ใช้ได้เท่านั้น
โทเค็นการเข้าถึงส่วนบุคคล
| method | path | description |
|---|---|---|
| GET | /api/users/{userId}/personal-access-tokens | รับโทเค็นการเข้าถึงส่วนบุคคลทั้งหมดสำหรับผู้ใช้ |
| POST | /api/users/{userId}/personal-access-tokens | เพิ่มโทเค็นการเข้าถึงส่วนบุคคลใหม่สำหรับผู้ใช้ |
| DELETE | /api/users/{userId}/personal-access-tokens/{name} | ลบโทเค็นสำหรับผู้ใช้โดยชื่อ |
| PATCH | /api/users/{userId\s}/personal-access-tokens/{name} | อัปเดตโทเค็นสำหรับผู้ใช้โดยชื่อ |
โทเค็นการเข้าถึงส่วนบุคคลให้วิธีที่ปลอดภัยสำหรับผู้ใช้ในการให้ โทเค็นการเข้าถึง (Access token) โดยไม่ต้องใช้ข้อมูลประจำตัวและการลงชื่อเข้าใช้แบบโต้ตอบ เรียนรู้เพิ่มเติมเกี่ยวกับ การใช้โทเค็นการเข้าถึงส่วนบุคคล
การจัดการการตั้งค่า MFA ของผู้ใช้
| method | path | description |
|---|---|---|
| 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 |
การลบบัญชีผู้ใช้
| method | path | description |
|---|---|---|
| DELETE | /api/users/{userId} | ลบผู้ใช้โดย user ID |
การจัดการเซสชันผู้ใช้
| method | path | description |
|---|---|---|
| GET | /api/users/{userId}/sessions | รับเซสชันผู้ใช้โดย user ID |
| GET | /api/users/{userId}/sessions/{sessionId} | รับเซสชันผู้ใช้โดย session ID |
| DELETE | /api/users/{userId}/sessions/{sessionId} | ลบเซสชันผู้ใช้โดย session ID |
การจัดการแอปที่ได้รับอนุญาตของผู้ใช้ (grants)
| method | path | description |
|---|---|---|
| GET | /api/users/{userId}/grants | แสดงรายการการอนุญาตแอปที่ใช้งานอยู่สำหรับผู้ใช้ |
| DELETE | /api/users/{userId}/grants/{grantId} | ยกเลิกการอนุญาตแอปเฉพาะโดย ID |
พารามิเตอร์การค้นหาเพิ่มเติมสำหรับการแสดงรายการการอนุญาต:
appType=firstParty: แสดงเฉพาะการอนุญาตแอป first-partyappType=thirdParty: แสดงเฉพาะการอนุญาตแอป third-party- ละเว้น
appType: แสดงการอนุญาตที่ใช้งานอยู่ทั้งหมด
เมื่อการอนุญาตถูกยกเลิก โทเค็นการเข้าถึงทึบและโทเค็นรีเฟรชที่ออกก่อนหน้านี้สำหรับการอนุญาตนั้นจะถูกทำให้เป็นโมฆะ