Core Service
บทนำ
Core Service คือบริการแบบ monolith สำหรับงานสำคัญของ Logto โค้ดต้นฉบับอยู่ที่ @logto/core
Core Service และ SDK core เป็นสองแนวคิดที่แยกจากกัน ดู แนวทาง SDK สำหรับความแตกต่าง
เพื่อให้ง่ายขึ้น เราแบ่ง Core Service ออกเป็น 4 โมดูลหลัก:
ชื่อ | คำอธิบาย | Mount Path |
OIDC Provider | เป็น OpenID Provider | /oidc |
Logto API | Management API, Experience API และ Account API | /api |
Frontend proxies | HTTP proxy หรือการให้บริการไฟล์ static สำหรับโปรเจกต์ frontend | ดู Frontend proxies สำหรับรายละเอียด |
API ฝั่ง backend รวมถึง OIDC ถูกสร้างอยู่ในแพ็กเกจ core
ขณะที่ frontend proxies จะขึ้นกับแพ็กเกจพี่น้องใน monorepo ของ Logto
OIDC Provider
Logto ใช้ OpenID Connect implementation ที่ได้รับการรับรอง node-oidc-provider อยู่เบื้องหลัง โดย provider นี้จะถูก mount ที่ /oidc
และคุณสามารถตรวจสอบการตั้งค่าและไฟล์ที่เกี่ยวข้องได้ที่ packages/core/src/oidc
OIDC Userinfo Endpoint พร้อมใช้งานและ mount ที่ /oidc/me
หากคุณต้องการเรียก OIDC API โดยตรง อย่าลืมตั้ง header Content-Type: application/x-www-form-urlencoded
ฟีเจอร์ OpenID ที่เปิดใช้งาน
- OpenID Connect Core
- OpenID Connect Discovery
- OpenID Connect RP-Initiated Logout
- OpenID Connect Back-Channel Logout
- OAuth 2.0
- OAuth 2.0 Token Introspection
- OAuth 2.0 Token Revocation
- OAuth 2.0 Resource Indicators
- OAuth 2.0 Token Exchange
- Proof Key for Code Exchange (PKCE)
Logto API
Management API
Management API คือชุด API สำหรับจัดการและอัปเดตข้อมูล Logto เฉพาะผู้ใช้ที่มีบทบาท admin
เท่านั้นที่เข้าถึงได้
ไปที่ API references เพื่อดูรายละเอียด
หากต้องการเข้าถึง API แบบโปรแกรม ดู โต้ตอบกับ Management API
Experience API
Experience API คือชุด endpoint เฉพาะที่รองรับการโต้ตอบกับอินเทอร์เฟซลงชื่อเข้าใช้แบบกำหนดเอง
API เหล่านี้ช่วยให้นักพัฒนาสามารถสร้างฟีเจอร์หลักของการยืนยันตัวตน (Authentication) เช่น ลงชื่อเข้าใช้ ลงทะเบียน รีเซ็ตรหัสผ่าน ผูกบัญชีโซเชียล และการยืนยันตัวตนหลายปัจจัย (MFA) ในการใช้งานฟีเจอร์เหล่านี้ UI แบบกำหนดเองของคุณต้องโต้ตอบกับ Experience API
เพื่อเข้าใจ flow ของผู้ใช้และรายละเอียดการใช้งาน:
- ดูคู่มือ พัฒนา UI ของคุณเอง เพื่อเรียนรู้วิธีใช้ Experience API สร้าง UI ประสบการณ์ของคุณเอง
- อ้างอิง Experience API references สำหรับเอกสาร API โดยละเอียด
- อ่าน Experience API design RFC สำหรับสเปกเทคนิคเชิงลึกและตัวอย่าง
Account API
Account API คือชุด API ที่ครอบคลุมซึ่งเปิดให้ผู้ใช้ปลายทางเข้าถึง API ได้โดยตรงโดยไม่ต้องผ่าน Management API จุดเด่นมีดังนี้:
- เข้าถึงโดยตรง: Account API ให้อำนาจผู้ใช้ปลายทางในการเข้าถึงและจัดการโปรไฟล์บัญชีของตนเองโดยตรง โดยไม่ต้องผ่าน Management API
- การจัดการโปรไฟล์และตัวตนผู้ใช้: ผู้ใช้สามารถจัดการโปรไฟล์และการตั้งค่าความปลอดภัยได้เต็มที่ รวมถึงอัปเดตข้อมูลตัวตน เช่น อีเมล เบอร์โทรศัพท์ รหัสผ่าน และจัดการการเชื่อมต่อโซเชียล รองรับ MFA และ SSO เร็วๆ นี้
- การควบคุมการเข้าถึงระดับโลก: ผู้ดูแลระบบ (Admin) มีสิทธิ์ควบคุมการเข้าถึงทั้งหมด สามารถปรับแต่งแต่ละฟิลด์ได้
- การอนุญาตที่ไร้รอยต่อ: การอนุญาตง่ายกว่าที่เคย! เพียงใช้
client.getAccessToken()
เพื่อรับโทเค็นการเข้าถึงทึบ (opaque access token) สำหรับ OP (Logto) และแนบไปกับ Authorization header เป็นBearer <access_token>
ด้วย Logto Account API คุณสามารถสร้างระบบจัดการบัญชีแบบกำหนดเอง เช่น หน้าโปรไฟล์ที่เชื่อมต่อกับ Logto ได้อย่างสมบูรณ์
ดู การตั้งค่าบัญชีด้วย Account API เพื่อเรียนรู้วิธีใช้ Account API สร้างหน้าตั้งค่าบัญชีของคุณเอง
อ้างอิง Account API references สำหรับเอกสาร API โดยละเอียด
Frontend proxies
frontend proxy คือฟังก์ชัน middleware ที่ให้บริการโปรเจกต์ frontend ตามสภาพแวดล้อม:
- ถ้าเป็น development จะ proxy HTTP request ไปยัง frontend dev server
- ถ้าเป็น production จะให้บริการไฟล์ frontend แบบ static โดยตรง
Logto มี frontend proxies สามตัว:
ชื่อ | Frontend Package | Mount Path |
Admin Console proxy | /packages/console | /console |
Demo app proxy | /packages/demo-app | /demo-app |
UI (sign-in experience) proxy | /packages/ui | / |
คุณอาจสังเกตว่า UI proxy ใช้ root path ไม่เหมือน proxy อื่น UI proxy เป็น fallback proxy ซึ่งหมายความว่าจะทำงานก็ต่อเมื่อไม่มี proxy อื่นตรงกับ path ที่ร้องขอ