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

Core Service

บทนำ​

Core Service คือบริการแบบ monolith สำหรับงานสำคัญของ Logto โค้ดต้นฉบับอยู่ที่ @logto/core

บันทึก:

Core Service และ SDK core เป็นสองแนวคิดที่แยกจากกัน ดู แนวทาง SDK สำหรับความแตกต่าง

เพื่อให้ง่ายขึ้น เราแบ่ง Core Service ออกเป็น 4 โมดูลหลัก:

ชื่อคำอธิบายMount Path
OIDC Providerเป็น OpenID Provider/oidc
Logto APIManagement API, Experience API และ Account API/api
Frontend proxiesHTTP 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 ที่เปิดใช้งาน​

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 PackageMount 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 ที่ร้องขอ