跳轉到主要內容

概覽

驗證 API 提供使用者註冊、登入、電子郵件驗證、密碼重設和 OAuth 整合的端點。

標頭

對於已驗證的函式呼叫:
對於管理員端點:

註冊使用者

建立新使用者帳戶。

查詢參數

參數類型必需描述
client_typestring用戶端類型:web(預設)、mobiledesktopserver

請求體

欄位類型必需描述
emailstring使用者電子郵件地址
passwordstring密碼(必須符合設定的要求)
namestring使用者顯示名稱
redirectTostring用於基於連結的電子郵件驗證。電子郵件連結始終先開啟 InsForge 後端端點;令牌驗證後,InsForge 將瀏覽器重新導向到此 URL 並顯示驗證結果。當 verifyEmailMethodlink 時需要。此 URL 必須包含在 allowedRedirectUrls 中。建議:使用您的應用的登入頁面。

示例(Web 用戶端)

示例(非 Web 用戶端)

回應(Web 用戶端)

回應(非 Web 用戶端)

  • 對於 Web 用戶端:傳回 csrfToken,刷新令牌儲存在 httpOnly Cookie 中。
  • 對於 非 Web 用戶端mobiledesktopserver):直接在回應中傳回 refreshToken。安全地將其儲存在您的用戶端或伺服器執行階段中。
  • 使用 server 用於受信任的伺服器端呼叫者,例如 SSR 應用、BFF 或無法依賴瀏覽器 Cookie 的 CLI。
  • 如果 requireEmailVerificationtrueaccessToken 和令牌將為 null,使用者必須在登入前驗證其電子郵件。

登入

驗證使用者並取得存取令牌。

查詢參數

參數類型必需描述
client_typestring用戶端類型:web(預設)、mobiledesktopserver

請求體

欄位類型必需描述
emailstring使用者電子郵件地址
passwordstring使用者密碼

示例(Web 用戶端)

示例(非 Web 用戶端)

回應(Web 用戶端)

回應(非 Web 用戶端)

  • 對於 Web 用戶端:傳回 csrfToken,刷新令牌儲存在 httpOnly Cookie 中。呼叫 /api/auth/refresh 時在 X-CSRF-Token 標頭中包含 csrfToken
  • 對於 非 Web 用戶端mobiledesktopserver):直接傳回 refreshToken。安全地儲存它,並在呼叫 /api/auth/refresh 時在請求體中包含它。

刷新令牌

使用刷新令牌刷新存取令牌。

查詢參數

參數類型必需描述
client_typestring用戶端類型:web(預設)、mobiledesktopserver

標頭(Web 用戶端)

標頭類型必需描述
X-CSRF-Tokenstring從登入/註冊回應接收的 CSRF 令牌

請求體(非 Web 用戶端)

欄位類型必需描述
refreshTokenstring從登入/註冊回應接收的刷新令牌

示例(Web 用戶端)

示例(非 Web 用戶端)

回應(Web 用戶端)

回應(非 Web 用戶端)

令牌輪換已為安全性而實作:
  • Web 用戶端:每次刷新都傳回一個新的 csrfToken,該令牌必須用於後續刷新要求。
  • 非 Web 用戶端mobiledesktopserver):每次刷新都傳回一個新的 refreshToken。您必須持續化此新令牌並將其用於下一次刷新。在記憶體中更新 accessToken

登出

登出並清除刷新令牌 Cookie。

示例

回應


取得目前使用者

從 JWT 令牌取得目前已驗證使用者的資訊。 此 REST 端點不會自動刷新過期的存取令牌。
  • 對於原始 REST 用戶端,在需要時呼叫 POST /api/auth/refresh
  • 對於使用 TypeScript SDK 的瀏覽器應用,在啟動期間呼叫 auth.getCurrentUser()。SDK 將在可以刷新工作階段時自動使用 httpOnly 刷新 Cookie。
  • 此自動刷新行為僅限瀏覽器。伺服器、行動和其他非瀏覽器用戶端應明確刷新。

示例

回應


更新設定檔

更新目前使用者的設定檔。

請求體

欄位類型必需描述
profileobject設定檔資料(名稱、頭像 URL、自訂欄位)

示例

回應


取得使用者設定檔

按 ID 取得使用者的公開設定檔資訊。

示例

回應


電子郵件驗證

傳送驗證電子郵件

請求體

欄位類型必需描述
emailstring使用者電子郵件地址
redirectTostring用於基於連結的電子郵件驗證。電子郵件連結始終先開啟 InsForge 後端端點;令牌驗證後,InsForge 將瀏覽器重新導向到此 URL 並顯示驗證結果。當 verifyEmailMethodlink 時需要。此 URL 必須包含在 allowedRedirectUrls 中。建議:使用您的應用的登入頁面。

示例

回應

驗證電子郵件

查詢參數

參數類型必需描述
client_typestring用戶端類型:web(預設)、mobiledesktopserver

請求體

欄位類型必需描述
emailstring使用者電子郵件地址
otpstring6 位驗證碼
對於基於連結的驗證,電子郵件點擊使用:
該面向瀏覽器的 GET 流在後端驗證令牌並重新導向到儲存的 redirectTo URL。POST /api/auth/email/verify 是用於 6 位代碼提交的 JSON API。 像這樣處理瀏覽器重新導向:
  • 成功:?insforge_status=success&insforge_type=verify_email
  • 錯誤:?insforge_status=error&insforge_type=verify_email&insforge_error=...
  • insforge_status:瀏覽器連結流的結果。對於驗證,值為 successerror
  • insforge_type:流識別符。對於驗證連結,這始終是 verify_email
  • insforge_error:僅當 insforge_status=error 時出現。可顯示或記錄的人類可讀錯誤訊息。
  • 建議處理:使用您的登入頁面作為 redirectTo。當 insforge_status=success 時,顯示確認訊息並要求使用者使用其電子郵件和密碼登入。
  • 如果 redirectTo 未被允許列表,InsForge 會傳回 400 錯誤,其訊息包括被拒絕的 URL,nextActions 告訴您將其新增到 allowedRedirectUrls

示例(Web 用戶端)

示例(非 Web 用戶端)

回應(Web 用戶端)

回應(非 Web 用戶端)


密碼重設

傳送重設電子郵件

請求體

欄位類型必需描述
emailstring使用者電子郵件地址
redirectTostring用於基於連結的密碼重設。電子郵件連結始終先開啟 InsForge 後端端點;InsForge 然後將瀏覽器重新導向到此 URL,並在查詢字串中包含重設 token,以便您的應用可以呈現其自己的重設密碼頁面。當 resetPasswordMethodlink 時需要。此 URL 必須包含在 allowedRedirectUrls 中。建議:使用您的應用的專用重設密碼頁面。

示例

交換代碼取得令牌(僅代碼方法)

請求體

欄位類型必需描述
emailstring使用者電子郵件地址
codestring電子郵件中的 6 位代碼

示例

回應

重設密碼

對於基於連結的密碼重設,電子郵件點擊使用:
該面向瀏覽器的 GET 流在後端驗證令牌並重新導向到儲存的 redirectTo URL,查詢字串中包含重設令牌。POST /api/auth/email/reset-password 仍然是接受新密碼的 JSON API。 像這樣處理瀏覽器重新導向:
  • 準備重設:?token=...&insforge_status=ready&insforge_type=reset_password
  • 錯誤:?insforge_status=error&insforge_type=reset_password&insforge_error=...
  • token:僅當 insforge_status=ready 時出現。將此值作為 otp 傳遞給 POST /api/auth/email/reset-password
  • insforge_status:瀏覽器連結流的結果。對於重設連結,值為 readyerror
  • insforge_type:流識別符。對於重設連結,這始終是 reset_password
  • insforge_error:僅當 insforge_status=error 時出現。可顯示或記錄的人類可讀錯誤訊息。
  • 您的應用應僅在 insforge_status=readytoken 存在時呈現重設密碼表單。

請求體

欄位類型必需描述
newPasswordstring新密碼
otpstring來自代碼交換端點或魔法連結 URL 的重設令牌

示例

回應


OAuth 驗證

OAuth 驗證現在使用 PKCE(代碼交換證明密鑰)流以增強安全性。不是直接在重新導向 URL 中傳回令牌,而是傳回必須使用授權代碼交換令牌的授權代碼。

啟動 OAuth 流

對於在儀表板中設定的自訂提供程式,使用:

查詢參數

參數類型必需描述
redirect_uristring驗證後要重新導向到的 URL
code_challengestringPKCE 代碼挑戰(Base64 URL 編碼的代碼驗證器的 SHA256 雜湊)
其他字串查詢參數string提供程式特定的 OAuth 提示,例如 Google 的 prompt=select_account
僅當額外的查詢參數與伺服器擁有的 OAuth 欄位不衝突時,才會將其作為提供程式特定的提示轉送。不要傳遞 client_idredirect_uricode_challengestateresponse_typescope;InsForge/提供程式產生的值獲勝,衝突的用戶端值被忽略。

支援的提供程式

  • google
  • github
  • discord
  • linkedin
  • facebook
  • apple
  • microsoft
  • x
  • spotify
  • GET /api/auth/public-configcustomOAuthProviders 中傳回的任何自訂提供程式金鑰

示例

回應

OAuth 回呼

使用者使用提供程式驗證後,他們將被重新導向到您的 redirect_uri,並帶上授權代碼:
insforge_code 是一個臨時授權代碼,必須使用 /api/auth/oauth/exchange 端點交換為令牌。

交換代碼取得令牌

交換授權代碼取得存取令牌和刷新令牌。

查詢參數

參數類型必需描述
client_typestring用戶端類型:web(預設)、mobiledesktopserver

請求體

欄位類型必需描述
codestring回呼中接收的 insforge_code
code_verifierstring用於生成 code_challenge 的原始 code_verifier

示例

回應

  • 對於 Web 用戶端refreshToken 將為 null,並傳回 csrfToken。刷新令牌儲存在 httpOnly Cookie 中。
  • 對於 非 Web 用戶端mobiledesktopserver):直接傳回 refreshToken。安全地儲存它。

完整 OAuth 流示例(非 Web)


公開設定

取得公開驗證設定(無需驗證)。

示例

回應


管理員端點

這些端點需要 project_admin 角色。

列出所有使用者

按 ID 取得使用者

刪除使用者

產生匿名令牌

取得驗證設定

取得目前驗證設定(僅管理員)。

示例

回應

allowedRedirectUrls 項目與完整的 redirectTo 值相符,包括配置、主機、選用埠和路徑。
  • 精確項目必須完全相符,例如 https://myapp.com/dashboard
  • 通配符僅在主機部分支援,例如 https://*.myapp.com/callback
  • 深層連結在明確列出時允許,例如 com.example.app:/oauth2redirectmyapp://auth/callback
  • 如果 allowedRedirectUrls 為空,InsForge 允許所有重新導向以方便開發人員。這對生產不安全,應在本機開發之外避免。

更新驗證設定

更新驗證設定(僅管理員)。

請求體

欄位類型必需描述
requireEmailVerificationboolean是否需要電子郵件驗證
passwordMinLengthinteger最小密碼長度(4-128)
requireNumberboolean密碼中需要數字
requireLowercaseboolean密碼中需要小寫字母
requireUppercaseboolean密碼中需要大寫字母
requireSpecialCharboolean密碼中需要特殊字元
verifyEmailMethodstring電子郵件驗證方法(codelink
resetPasswordMethodstring密碼重設方法(codelink
allowedRedirectUrlsarray允許重新導向 URL 的清單。項目與完整的 redirectTo 值相符。精確 URL 必須完全相符,支援主機通配符如 https://*.domain.com/callback,當明確列出時允許自訂深層連結如 com.example.app:/oauth2redirect。如果為空,允許所有重新導向,這對生產不安全。

示例

交換管理員工作階段

交換雲端提供程式授權代碼取得管理員工作階段。

請求體

欄位類型必需描述
codestringInsforge Cloud 的授權代碼或 JWT

示例

回應

取得目前管理員工作階段

從項目管理員存取令牌取得目前儀表板管理員工作階段。

回應

重新整理管理員工作階段

刷新儀表板管理員存取令牌。此端點使用僅限儀表板的 insforge_admin_refresh_token httpOnly Cookie,不共用應用/使用者刷新 Cookie。

登出管理員工作階段


錯誤回應

無效認證 (401)

使用者已存在 (409)

電子郵件未驗證 (403)