如何在你的 Encore 應用程式中使用 Logto
了解如何在你的 Encore 後端應用程式中使用 Logto 進行用戶認證。在這個指南中,我們將展示如何將你的 Go 後端與 Logto 整合。
Encore 是一個後端開發平台,可以輕鬆構建生產就緒的 API 和微服務。
Logto 是一個現代化的 Auth0 替代方案,可以在幾分鐘內幫助你建立登錄體驗和用戶身份。它特別適合保護使用 Encore 構建的 API 服務。
這份指南將向你展示如何將 Logto 與你的 Encore 應用程式整合,以實現安全的用戶認證並保護你的 API 端點。
Logto 設置
在我們開始與 Encore 整合之前,你需要在 Logto 設置一些東西:
-
如果你還沒有帳戶,請到 Logto 雲端 創建一個帳戶。
-
在 Logto 控制台中創建一個 API 資源,這代表你的 Encore API 服務
- 在 Logto 控制台中前往「API 資源」,並創建一個新的 API
- 設置名稱和 API 識別符(例如,
https://api.encoreapp.com
) - 記下 API 資源詳細信息頁面上的 API 識別符,我們稍後會需要它
- 為你的前端應用程式創建一個應用程式
- 在 Logto 控制台中前往「應用程式」
- 根據你的前端框架創建一個新應用程式(我們以 React 為例,但你可以創建任何單頁應用程式(SPA)或原生應用程式)
- (可選的,我們稍後會涵蓋這部分)按照 Logto 控制台中的指南將 Logto 整合到你的前端應用程式中。
- 記下應用程式 ID 和發行者 URL,因為我們稍後會需要它們
設置你的 Encore API 服務的認證處理器
現在讓我們在你的 Encore 應用程式中實現認證。我們將使用 Encore 的內建 認證處理器 驗證 Logto 的 JWT 令牌。
在你的 Encore 應用程式中添加這兩個模塊:
創建 auth/auth.go
並添加以下代碼:
然後,你可以使用這個認證處理器來保護你的 API 端點:
前端
我們已經完成了 Encore API 服務中的工作。現在我們需要將 Logto 整合到我們的前端應用程式中。
你可以選擇在 Logto 快速入門 頁面中使用的框架,以將 Logto 整合到你的前端應用程式中。在這個指南中,我們以 React 為例。
查看 將認證添加到你的 React 應用程式 指南,以了解如何將 Logto 與你的 React 應用程式整合。在這個例子中,你只需完成到整合部分。之後,我們將展示前端應用程式如何從 Logto 獲得訪問令牌以訪問 Encore API。
首先,更新你的 LogtoConfig
,在 resources
字段中添加你在 Encore 應用程式中使用的 API 資源。這告訴 Logto 我們將請求此 API 資源的訪問令牌(Encore API)。
更新 LogtoConfig
後,如果用戶已經登錄,他們需要登出並重新登錄,以便新的 LogtoConfig
設置生效。
一旦用戶登錄,你可以使用 Logto React SDK 提供的 getAccessToken
方法來獲取訪問特定 API 資源的訪問令牌。例如,要訪問 Encore API,我們使用 https://api.encoreapp.com
作為 API 資源標識符。
然後,在後續的請求中,將此訪問令牌添加到請求標頭中作為 Authorization
欄位。
就是這樣,你已成功將 Logto 與你的 Encore 應用程式整合。
探索更多
如果你想在 Encore 中使用更多 Logto 功能,你可以參考以下鏈接獲取更多信息:
- 結合 Logto 的 自定義令牌聲明 設置 自定義用戶數據 在認證處理器中
- 使用 Logto RBAC 功能 向你的 Encore API 服務添加授權支持。React 整合教程也展示了如何將
scope
信息添加到你的訪問令牌(注意,在更新 Logto 設置後需要重新登錄) - 使用組織令牌構建你的多租戶應用程式與 Encore API 服務,參考 使用 Logto 構建多租戶 SaaS 應用程式