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

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