使用 Logto 簡化 OAuth 和 OIDC 驗證
我們的社群對於將 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 雲端帳戶的存取權。
- 一個支 援第三方 OAuth 或 OIDC 身分提供者的產品(以下簡稱為「產品」)。
配置 Logto
如果你是自我管理的 Logto,請參考 Logto 的「快速開始」文檔來設置你的 Logto 實例。
如果你使用的是 Logto 雲端,請透過訪問 URL https://cloud.logto.io/
打開 Logto 控制台,或者使用你為自我管理設置的端點。
創建應用程式
進入「應用程式」標籤,然後點擊「創建應用程式」。
在出現的模態框中,選擇「傳統網頁」,並提供一個應用程式名稱,例如「我的應用程式」。點擊「創建應用程式」。
你將被引導至 Logto 的教學頁面。點擊右上角的「跳過」以進入應用程式詳細資訊頁面。
配置重定向 URI
在「重定向 URI」部分,輸入產品文檔中提供的值。通常,它是基於你的 ID 或產品中的端點配置而動態生成的。例如,在 ChatGPT 插件中,重定向 URI 為:
https://chat.openai.com/aip/[你的插件 ID]/oauth/callback
如果你的插件 ID 是 foo123
,則值應為:
https://chat.openai.com/aip/foo123/oauth/callback
或者,它可能被稱為「重定向 URL」、「回調 URI」或「回調 URL」。
可選:確保 Logto 發行刷新令牌
某些產品在向 Logto 發送令牌交換請求時可能需要一個 刷新令牌。對於 OAuth,只需確保包含 offline_access
範圍。根據 OIDC 協議,產品在初始授權請求的 Authorization Code 流程中必須添加 prompt=consent
搜索參數,否則將不會發行刷新令牌。
如果該產品使用 OAuth 或沒有添加 prompt=consent
參數或 offline_access
範圍,但需要刷新令牌(例如 ChatGPT 插件),請向下滾動至「高級設置」部分並啟用「始終發行刷新令牌」。
就是這樣!
點擊底部的「保存變更」按鈕。保持此頁面打開,因為它將在進 一步配置中很有用。
配置產品
按照產品文檔中描述的步驟進行 OAuth 或 OIDC 配置。
基本配置
大多數所需的配置值可以在 Logto 應用程式詳細資訊頁面中找到。有些名稱可能有別名,請參考下表:
Logto 名稱 | 別名 | 用途 |
---|---|---|
App ID | 應用 ID,客戶端 ID | |
App Secret | 應用密鑰,客戶端密鑰 | |
Redirect URI | 重定向 URL,回調 URI,回調 URL | 登入後重定向 |
Post Sign-out Redirect URIs | 登出後重定向 URL,登出後(重定向)URI,登出後(重定向)URL | 登出後重定向 |
Authorization Endpoint | 授權 URI,授權 URL,授權端點,授權 URL,授權 URI | 初始身份驗證 |
Token Endpoint | 令牌 URL,令牌 URI | 請求令牌授權 |
Userinfo Endpoint | 用戶信息 URL,用戶信息 URI,用戶信息端點,用戶信息 URL,用戶信息 URI | 獲取當前用戶信息 |
對於現代產品,可能只需要「發現端點」。在這種情況下,在授權端點中將 auth
替換為 .well-known/openid-configuration
。例如,如果授權端點是 https://default.logto.app/oidc/auth
,則發現端點將是 https://default.logto.app/oidc/.well-known/openid-configuration
。
可選:範圍配置
如果產品支援 OIDC 或需要發行 ID 令牌,請將 openid profile
添加到範圍配置中。請參考下表中的聲明範圍:
聲明 | 類型 | 必需範圍 |
---|---|---|
sub | 字串 | openid |
name | 字串 | profile |
username | 字串 | profile |
picture | 字串 | profile |
字串 | ||
email_verified | 布林 | |
phone_number | 字串 | phone |
phone_number_verified | 布林 | phone |
檢查點:測試 Logto 整合
點擊產品中的登入按鈕,你將被導向 Logto 登入體驗。
如果一切順利配置,在 Logto 完成登入或註冊過程後,你將無錯誤地被重定向回到產品。
這就是我們關於使用 Logto 簡化 OAuth 和 OIDC 驗證的指南。如整合過程中遇到任何問題,請隨時透過電子郵件 [email protected] 聯繫我們或加入我們的 Discord 伺服器!