跳轉到主要內容

安裝

  1. Add InsForge dependencies to your project
build.gradle.kts:
  1. Initialize InsForge SDK
  1. Enable Logging (Optional)
For debugging, you can configure the SDK log level:
Log LevelDescription
NONENo logging (default, recommended for production)
ERROROnly errors
WARNWarnings and errors
INFOInformational messages
DEBUGDebug info (request method, URL, response status)
VERBOSEFull details (headers, request/response bodies)
Use NONE or ERROR in production to avoid exposing sensitive data in logs.

Android Initialization

  1. Add Chrome Custom Tabs dependency to your build.gradle.kts:
  1. Initialize InsForge SDK (With Chrome Custom Tabs and Session Storage)
  1. Use Jetpack DataStore for Session Storage (Optional)

signUp()

使用電子郵件和密碼建立新使用者帳戶。

參數

  • email (String) - 使用者的電子郵件地址
  • password (String) - 使用者的密碼
  • name (String?, optional) - 使用者的顯示名稱

傳回值

SignUpResponse

範例(包含驗證的完整流程)

電子郵件驗證

對於使用電子郵件註冊的使用者,InsForge 後端提供三種選項:
  1. 無電子郵件驗證 - 使用者可在註冊後立即登入。SignUpResponse 將具有 accessToken != null
  2. 基於連結的驗證 - 使用者必須開啟電子郵件並按一下驗證連結,然後才能登入。
  3. 基於代碼的驗證 - InsForge 後端向使用者的電子郵件傳送 6 位驗證代碼。用戶端應用程式需要顯示驗證畫面,使用者可以在其中輸入代碼,然後呼叫 verifyEmail(email, code) 以完成驗證。只有之後使用者才能使用電子郵件 + 密碼登入。
requireEmailVerificationtrue 時,回應將具有:
  • accessToken = null
  • user = null
  • requireEmailVerification = true
這表示使用者需要透過選項 2 或 3 進行驗證,然後才能登入。

相關方法

方法說明
verifyEmail(email, code)使用 6 位代碼驗證電子郵件
resendVerificationEmail(email)重新傳送驗證電子郵件

signIn()

使用電子郵件和密碼登入現有使用者。

範例

電子郵件驗證

如果登入回應是:
這表示使用者需要透過選項 2 或 3(連結或代碼,請參閱 signUp())進行驗證,然後才能登入。

signOut()

登出目前使用者。

範例


signInWithOAuthPage()

直接使用特定 OAuth 提供者登入。此方法在系統瀏覽器中直接開啟 OAuth 提供者的身份驗證頁面。

支援的提供者

參數

  • provider (OAuthProvider) - 用於身份驗證的 OAuth 提供者
  • redirectUri (String) - 回呼 URL,InsForge 將在身份驗證後重新導向到此 URL

傳回值

範例

  1. 設定 BrowserLauncher
建立 InsForge 用戶端時,設定 browserLauncher 以處理開啟 URL:
  1. 設定應用程式連結/深層連結回呼
在 AndroidManifest.xml 中設定您的回呼 Activity:
  • 選項 A:自訂 URL 配置(用於開發)
  • 選項 B:應用程式連結(用於生產)
  1. 使用特定提供者啟動 OAuth 登入
  1. 處理 OAuth 回呼
client 應來自您在應用程式中其他地方使用的同一共用 InsForge 用戶端執行個體,例如 Application 單一形式或您的 DI 容器。

getCurrentUser()

從伺服器擷取目前已驗證的使用者。這是一個進行網路請求的暫停函式。

傳回值

範例

此方法進行網路請求以擷取使用者資料。若要存取本機快取的使用者狀態,請改用 currentUser StateFlow。

updateProfile()

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

參數

  • profile (Map\<String, Any\>) - 要更新的設定檔欄位

傳回值

範例


密碼重設

InsForge 支援兩種密碼重設方法,在後端中設定:
  • 代碼方法:使用者透過電子郵件接收 6 位代碼,驗證該代碼以取得重設權杖,然後重設密碼
  • 連結方法:使用者透過電子郵件接收包含重設權杖的魔法連結,然後直接重設密碼

sendPasswordReset()

向使用者傳送密碼重設電子郵件。該電子郵件將包含 6 位代碼或魔法連結,具體取決於後端設定。

參數

  • email (String) - 使用者的電子郵件地址

範例


exchangeResetPasswordToken()

將 6 位重設代碼交換為重設權杖。此方法僅用於基於代碼的重設流程。

參數

  • email (String) - 使用者的電子郵件地址
  • code (String) - 透過電子郵件接收的 6 位數字代碼

傳回值

ResetTokenResponse

範例


resetPassword()

使用重設權杖重設使用者的密碼。

參數

  • newPassword (String) - 符合設定要求的新密碼
  • otp (String) - 重設權杖(來自代碼流的 exchangeResetPasswordToken(),或來自連結流的魔法連結 URL)

範例


錯誤處理

常見錯誤代碼

錯誤代碼說明
INVALID_CREDENTIALS電子郵件或密碼不正確
USER_NOT_FOUND不存在此電子郵件的使用者
EMAIL_NOT_VERIFIED需要電子郵件驗證
INVALID_EMAIL電子郵件格式無效
WEAK_PASSWORD密碼不符合要求
USER_ALREADY_EXISTS電子郵件已註冊
SESSION_EXPIRED工作階段已過期,需要重新登入