跳转到主要内容

安装

  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会话已过期,需要重新登录