การสร้างเว็บ SDK สำหรับ Logto ในไม่กี่นาที
เรียนรู้วิธีการสร้าง SDK ที่กำหนดเองสำหรับ Logto โดยใช้ `@logto/browser`
Logto เป็นแพลตฟอร์มการยืนยันตัวตนแบบเปิดที่มี SDK อย่างเป็นทางการมากมายที่ออกแบบมาเพื่อให้ง่ายต่อการรวมเข้ากับเฟรมเวิร์กและแพลตฟอร์มต่าง ๆ อย่างไรก็ตาม ยังมีอีกหลายแพลตฟอร์มที่ยังไม่มี SDK อย่างเป็นทางการ
เพื่อลดช่องว่างนี้ Logto จึงได้จัดทำแพ็กเกจพื้นฐาน @logto/browser
ซึ่งออกแบบมาช่วยนักพัฒนาในการสร้าง SDK ที่กำหนดเองซึ่งตรงตามความต้องการเฉพาะ แพ็กเกจนี้ใช้ฟังก์ชั่นหลักของ Logto ที่แยกออกจากเฟรมเวิร์กหรือแพลตฟอร์มใด ๆ ตราบใดที่มันรองรับ JavaScript และรันในสิ่งแวดล้อมของเบราว์เซอร์
ในคู่มือนี้ เราจะพาคุณผ่านขั้นตอนการสร้าง React SDK โดยใช้ @logto/browser SDK นี้จะทำให้กระบวนการลงชื่อเข้าใช้ คุณสามารถทำตามขั้นตอนเดียวกันเพื่อสร้าง SDK สำหรับแพลตฟอร์มที่ใช้ JavaScript อื่น ๆ ที่ใช้ในเบราว์เซอร์
กระบวนการลงชื่อเข้าใช้
ก่อนที่เราจะเริ่ม มาทำความเข้าใจกระบวนการลงชื่อเข้าใช้ใน Logto กัน กระบวนการลงชื่อเข้าใช้ประกอบด้วยขั้นตอนดังนี้:
- เปลี่ยนเส้นทางไปยัง Logto: ผู้ใช้ถูกเปลี่ยนเส้นทางไปยังหน้าลงชื่อเข้าใช้ของ Logto
- ยืนยันตัวตน: ผู้ใช้ใส่ข้อมูลรับรองและยืนยันตัวตนกับ Logto
- เปลี่ยนเส้นทางกลับไปยังแอปของคุณ: หลังจากยืนยันตัวตนสำเร็จ ผู้ใช้จะถูกเปลี่ยนเส้นทางกลับไปยังแอปของคุณพร้อมกับรหัสยืนยัน
- แลกเปลี่ยนรหัส: แอปของคุณแลกเปลี่ยนรหัสยืนยันกับโทเคน
บทนำสั้น ๆ ของ @logto/browser
แพ็กเกจ @logto/browser
มีการส่งออกคลาส LogtoClient
ซึ่งให้ฟังก์ชั่นหลักของ Logto รวมถึงวิธีการสำหรับกระบวนการลงชื่อเข้าใช้:
signIn()
: สร้าง URL การยืนยันตัวตน OIDC และเปลี่ยนเส้นทางไปยัง URL นั้นhandleSignInCallback()
: ตรวจสอบและวิเคราะห์ URL การเรียกกลับ และดึงรหัสยืนยันแล้วแลกเปลี่ยนรหัสกับโทเคนโดยการเรียกใช้ endpoint โทเคนisAuthenticated()
: ตรวจสอบว่าผู้ใช้ได้รับการยืนยันตัวตนหรือไม่
การสร้าง React SDK
ใน SDK เราจะให้ 2 hooks: useLogto
และ useHandleSignInCallback
พร้อมกับคอมโพเนนต์ LogtoProvider
:
useLogto
: Hook ที่ให้วิธีsignIn
เพื่อกระตุ้นกระบวนการลงชื่อเข้าใช้ และสถานะแสดงผลการยืนยันตัวตนisAuthenticated
เพื่อตรวจสอบว่าผู้ใช้ได้รับการยืนยันหรือไม่useHandleSignInCallback
: Hook ที่จัดการ URL การเรียกกลับและแลกเปลี่ยนรหัสยืนยันกับโทเคน ทำกระบวนการลงชื่อเข้าใช้ให้เสร็จสมบูรณ์
หากต้องการใช้ SDK คุณสามารถห่อแอพของคุณด้วยคอมโพเนนต์ LogtoProvider
และใช้ hooks เพื่อตรวจสอบสถานะการยืนยัน ลงชื่อเข้าใช้ และจัดการการเรียกกลับ
ขั้นตอน 1: ติดตั้งแพ็กเกจ
อันดับแรก ติดตั้งแพ็กเกจ @logto/browser
โดยใช้ npm หรือเครื่องมือติดตั้งแพ็กเกจอื่น ๆ:
ขั้นตอน 2: กำหนด context ของ React
กำหนด context ของ provider ซึ่งประกอบด้วย 3 ส่วน:
- อินสแตนซ์
LogtoClient
พื้นฐานซึ่งจะถูกกำหนดค่าใน provider และใช้ใน hooks - สถานะการยืนยันตัวตน
- วิธีการตั้งค่าสถานะการยืนยัน
สร้างไฟล์ใหม่ context.tsx
และเขียนโค้ดต่อไปนี้:
ขั้นตอน 3: ใช้ implement provider
ด้วย context ที่พร้อมแล้ว มาทำการ implement provider โดย provider จะกำหนดค่าอินสแตนซ์ LogtoClient
ตรวจสอบว่าผู้ใช้ได้รับการยืนยันและนำบริบทไปยังลูกของมัน
สร้างไฟล์ใหม่ provider.tsx
:
ขั้นตอน 4: ใช้ implement hooks
ตอนนี้ มาทำการ implement hooks
useLogto
: ใน hook นี้ เราใช้ context เพื่อลองรับอินสแตนซ์LogtoClient
และให้วิธีsignIn
และสถานะisAuthenticated
คุณสามารถเพิ่มวิธีการเพิ่มเติมใน hook นี้useHandleSignInCallback
: Hook นี้จะอ่าน URL การเรียกกลับจากเบราว์เซอร์ ดึงรหัสยืนยัน และแลกเปลี่ยนกับโทเคน นอกจากนี้ยังจะตั้งค่าสถานะการยืนยันเป็นtrue
หลังจากผู้ใช้ได้รับการยืนยัน.
สร้างไฟล์ใหม่ hooks.ts
และเขียนโค้ดต่อไปนี้:
จุดตรวจสอบ: การใช้ SDK
ตอนนี้ คุณได้สร้าง React SDK สำหรับ Logto แล้ว คุณสามารถใช้มันในแอพของคุณโดยห่อแอพด้วยคอมโพเนนต์ LogtoProvider
และใช้ hooks เพื่อตรวจสอบสถานะการยืนยัน ลงชื่อเข้าใช้ และจัดการการเรียกกลับ คุณสามารถตรวจสอบโปรเจกต์ตัวอย่าง React อย่างเป็นทางการ ที่นี่
สรุป
ในคู่มือนี้ เราได้พาคุณผ่านขั้นตอนการสร้าง React SDK สำหรับ Logto ที่ปรับใช้กระบวนการยืนยันตัวตนพื้นฐาน SDK ที่ให้ไว้ในที่นี้คือตัวอย่างพื้นฐาน คุณสามารถขยายมันโดยเพิ่มวิธีการและฟังก์ชันการทำงานเพิ่มเติมเพื่อตอบสนองความต้องการของแอพของคุณ
คุณสามารถทำตามขั้นตอนเดียวกันเพื่อสร้าง SDK สำหรับแพลตฟอร์มที่ใช้ JavaScript อื่น ๆ ที่ใช้ในเบราว์เซอร์.
แหล่งข้อมูล: