簡化 OAuth 和 OIDC 認證的 Logto 使用
我們的社群對使用 Logto 作為某些產品的身分提供者表示興趣,例如 Outline 或 ChatGPT 插件。理論上,只要你想整合的產品支持這些協議之一,Logto 就可以作為 OAuth 或 OIDC (OpenID Connect)提供者。
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"。
在彈出框中,選擇 "Traditional Web" 並提供一個應用名稱,例如 "My App"。點擊 "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 URL," "Callback URI," 或 "Callback URL.”
可選:確保 Logto 頒發刷新令牌
某些產品在向 Logto 發送令牌交換請求時可能需要刷新令牌。對於 OAuth,你只需確保包括 offline_access
權限。根據 OIDC 協議,默認情況下,產品還必須在授權代碼流的初始授權請求中添加 prompt=consent
搜索參數;否則不會頒發刷新令牌。
如果產品使用 OAuth 或未添加 prompt=consent
參數或 offline_access
權限但需要刷新令牌(例如 ChatGPT 插件),請向下滾動到 "高級設置" 區域並啟用 "始終頒發刷新令牌"。
完成了!
點擊底部的 "Save Changes" 按鈕。保持 該頁面打開,因為它對進一步的配置很有用。
配置產品
按照產品文檔中的步驟進行 OAuth 或 OIDC 配置。
基本配置
大多數所需的配置值可以在 Logto 的應用詳細信息頁面中找到。某些名稱可能有別名,請參閱下表以供參考:
Logto 名稱 | 別名 | 用途 |
---|---|---|
App ID | Application ID, Client ID | |
App Secret | Application Secret, Client Secret | |
Redirect URI | Redirect URL, Callback URI, Callback URL | 登錄後重定向 |
Post Sign-out Redirect URIs | Post Sign-out Redirect URL, Post Logout (Redirect) URI, Post Logout (Redirect) URL | 登出後重定向 |
Authorization Endpoint | Authorization URI, Authorization URL, Auth Endpoint, Auth URL, Auth URI | 初始驗證 |
Token Endpoint | Token URL, Token URI | 請求令牌授予 |
Userinfo Endpoint | Userinfo 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
添加到作用域配置中。請參閱下列表達與作用域的對應:
表達 | 類型 | 所需作用域 |
---|---|---|
sub | string | openid |
name | string | profile |
username | string | profile |
picture | string | profile |
string | ||
email_verified | boolean | |
phone_number | string | phone |
phone_number_verified | boolean | phone |
檢查點:測試 Logto 集成
在產品中點擊登錄按鈕,你將被引導到 Logto 登錄體驗。
如果一切配置正確,當你在 Logto 完成登錄或註冊流程後,你將被毫無錯誤地重定向回產品。
這就是我們關於如何使用 Logto 簡化 OAuth 和 OIDC 驗證的指南。如果你在整合過程中遇到任何問題,請隨時致電 [email protected] 聯繫我們或 加入我們的 Discord 服務器 !