繁體中文(香港)
  • auth
  • integration
  • oauth
  • oidc
  • identity

簡化 OAuth 和 OIDC 認證的 Logto 使用

我們的社群對使用 Logto 作為某些產品的身分提供者表示興趣,例如 Outline 或 ChatGPT 插件。理論上,只要你想整合的產品支持這些協議之一,Logto 就可以作為 OAuth 或 OIDC (OpenID Connect)提供者。

Gao
Gao
Founder

Logto 是一個易於使用的身份解決方案,提供所有必要的功能。它支持各種登錄方式,如用戶名、電子郵件、電話號碼和流行的社交登錄,例如 Google 和 GitHub。無論你是個人還是任何規模的企業,Logto 都能提供完美的客戶身份和訪問管理 (CIAM) 解決方案,以滿足你的專案的特定需求。

介紹

我們的社群對使用 Logto 作為某些產品的身分提供者表示興趣,例如 Outline 或 ChatGPT 插件。理論上,只要你想整合的產品支持這些協議之一,Logto 就可以作為 OAuth 2.0 (OAuth)或 OpenID Connect (OIDC)提供者。

在本文中,我們為使用 Logto 作為身分提供者進行 OAuth 或 OIDC 整合提供了一個通用指南。此外,我們還提供了特定整合的專用教程,包括:

儘管某些細節可能因產品而異,但基本配置保持通用。如果你有任何疑問或需要進一步的幫助,我們鼓勵你加入我們的 Discord 服務器進行進一步討論。

讓我們開始吧!

先決條件

在我們開始之前,請確保你具備以下條件:

  • 正在運行的 Logto 實例或對 Logto Cloud 帳戶的訪問權限。
  • 支持第三方 OAuth 或 OIDC 身份提供者的產品(稱為“產品”)。

配置 Logto

如果你是自托管 Logto,請參閱 Logto "入門" 文檔來設置你的 Logto 實例。

如果你使用的是 Logto Cloud,請訪問 URL https://cloud.logto.io/ 打開 Logto 控制台,或者使用你所設置的自托管端點。

創建應用程序

轉到 "Applications" 標籤,然後點擊 "Create application"。

Logto 控制台的 "Applications" 標籤

在彈出框中,選擇 "Traditional Web" 並提供一個應用名稱,例如 "My App"。點擊 "Create application"。

"Create application" 彈出框顯示多個應用類型

你將被引導到 Logto 的教程頁面。點擊右上角的 "Skip" 以進入應用詳細信息頁面。

應用程序詳細信息頁面

配置重定向 URI

在 "Redirect URIs" 部分,輸入產品文檔中提供的值。通常,它是基於你的 ID 或產品中的端點配置動態生成。例如,在 ChatGPT 插件 中,重定向 URI 是:

https://chat.openai.com/aip/[你的插件 ID]/oauth/callback

如果你的插件 ID 為 foo123,則該值應為:

https://chat.openai.com/aip/foo123/oauth/callback

"Redirect URIs" 配置區域

或者,它可能被稱為 "Redirect URL," "Callback URI," 或 "Callback URL.”

可選:確保 Logto 頒發刷新令牌

某些產品在向 Logto 發送令牌交換請求時可能需要刷新令牌。對於 OAuth,你只需確保包括 offline_access 權限。根據 OIDC 協議,默認情況下,產品還必須在授權代碼流的初始授權請求中添加 prompt=consent 搜索參數;否則不會頒發刷新令牌。

如果產品使用 OAuth 或未添加 prompt=consent 參數或 offline_access 權限但需要刷新令牌(例如 ChatGPT 插件),請向下滾動到 "高級設置" 區域並啟用 "始終頒發刷新令牌"。

"始終頒發刷新令牌" 切換開關

完成了!

點擊底部的 "Save Changes" 按鈕。保持該頁面打開,因為它對進一步的配置很有用。

操作欄顯示 "Save Changes" 按鈕

配置產品

按照產品文檔中的步驟進行 OAuth 或 OIDC 配置。

基本配置

大多數所需的配置值可以在 Logto 的應用詳細信息頁面中找到。某些名稱可能有別名,請參閱下表以供參考:

Logto 名稱別名用途
App IDApplication ID, Client ID
App SecretApplication Secret, Client Secret
Redirect URIRedirect URL, Callback URI, Callback URL登錄後重定向
Post Sign-out Redirect URIsPost Sign-out Redirect URL, Post Logout (Redirect) URI, Post Logout (Redirect) URL登出後重定向
Authorization EndpointAuthorization URI, Authorization URL, Auth Endpoint, Auth URL, Auth URI初始驗證
Token EndpointToken URL, Token URI請求令牌授予
Userinfo EndpointUserinfo URL, Userinfo URI, User Info Endpoint, User Info URL, User Info URI獲取當前用戶信息

對於現代產品,一個 "發現端點" 可能就足夠了。在這種情況下,在授權端點中用 .well-known/openid-configuration 替換 auth。例如,如果授權端點是 https://default.logto.app/oidc/auth,則發現端點將是 https://default.logto.app/oidc/.well-known/openid-configuration

可選:作用域配置

如果產品支持 OIDC 或需要頒發 ID Token,請將 openid profile 添加到作用域配置中。請參閱下列表達與作用域的對應:

表達類型所需作用域
substringopenid
namestringprofile
usernamestringprofile
picturestringprofile
emailstringemail
email_verifiedbooleanemail
phone_numberstringphone
phone_number_verifiedbooleanphone

檢查點:測試 Logto 集成

在產品中點擊登錄按鈕,你將被引導到 Logto 登錄體驗。

Logto 登錄體驗

如果一切配置正確,當你在 Logto 完成登錄或註冊流程後,你將被毫無錯誤地重定向回產品。

這就是我們關於如何使用 Logto 簡化 OAuth 和 OIDC 驗證的指南。如果你在整合過程中遇到任何問題,請隨時致電 [email protected] 聯繫我們或 加入我們的 Discord 服務器

進一步閱讀