繁體中文(台灣)
在幾分鐘內製作一個用於 Logto 的網頁 SDK
學習如何使用 `@logto/browser` 創建自定義的 Logto SDK。
Logto 是一個開源身份驗證平台,提供大量官方 SDK,旨在簡化各種框架和平台的集成。然而,仍然有許多平台沒有官方 SDK。
為了彌合這一差距,Logto 提供了基本套件 @logto/browser
,旨在幫助開發者製作專為特定需求量身定制的 SDK。此套件實現了 Logto 的核心功能,與任何特定框架或平台分離,只要它支持 JavaScript 並在瀏覽器環境中運行即可。
在本指南中,我們將引導你完成使用 @logto/browser 創建 React SDK 的步驟,該 SDK 將實現登錄流程。你可以按照相同的步驟創建適用於任何其他基於 JavaScript 並在瀏覽器運行的平台的 SDK。
登錄流程
在開始之前,讓我們了解 Logto 的登錄流程。登錄流程由以下步驟組成:
- 重定向至 Logto:用戶被重定向到 Logto 登錄頁面。
- 驗證:用戶輸入其憑據並在 Logto 上進行驗證。
- 重定向返回你的應用:在成功驗證後,用戶被重定向回你的應用,並附帶認證碼。
- 代碼交換:你的應用用認證碼交換憑證。
@logto/browser
的簡要介紹
@logto/browser
套件公開了一個 LogtoClient
類別,提供 Logto 的核心功能,包括登錄流程的方法:
signIn()
:生成 OIDC 認證 URL 並重定向到它。handleSignInCallback()
:檢查並解析回調 URL,提取認證碼,然後調用令牌端點用代碼交換憑證。isAuthenticated()
:檢查用戶是否已驗證。
製作 React SDK
在 SDK 中,我們將提供 2 個 hooks:useLogto
和 useHandleSignInCallback
,以及 LogtoProvider
組件:
useLogto
:一個提供signIn
方法以觸發登錄流程的 hook,並提供isAuthenticated
狀態以檢查用戶是否已驗證。useHandleSignInCallback
:一個處理回調 URL 並用認證碼交換憑證的 hook,完成登錄流程。
為了使用 SDK,你可以簡單地將應用包裹在 LogtoProvider
組件中,並使用 hooks 來檢查認證狀態、登錄和處理回調。
步驟 1:安裝套件
首先,使用 npm 或其他套件管理器安裝 @logto/browser
套件:
步驟 2:定義 React 的上下文
定義提供者的上下文,包含 3 個部分: