跳转到主要内容

安装

Add InsForge to your Swift Package Manager dependencies:

Enable Logging (Optional)

For debugging, you can configure the SDK log level and destination:
Log Levels:
LevelDescription
.traceMost verbose, includes all internal details
.debugDetailed information for debugging
.infoGeneral operational information (default)
.warningWarnings that don’t prevent operation
.errorErrors that affect functionality
.criticalCritical failures
Log Destinations:
DestinationDescription
.consoleStandard output (print)
.osLogApple’s unified logging system (recommended for iOS/macOS)
.noneDisable logging
.customProvide your own LogHandler factory
Use .info or .error in production to avoid exposing sensitive data in logs.

signUp()

使用电子邮件和密码创建新用户帐户。

参数

  • email (String) - 用户的电子邮件地址
  • password (String) - 用户的密码
  • name (String, optional) - 用户的显示名称

返回值

SignUpResponse

示例(包含验证的完整流程)

电子邮件验证

对于使用电子邮件注册的用户,InsForge 后端提供三种选择:
  1. 不需要电子邮件验证 - 用户可在注册后立即登录。SignUpResponse 将具有 hasSession = true
  2. 基于链接的验证 - 用户必须打开其电子邮件并单击验证链接才能登录。
  3. 基于代码的验证 - InsForge 后端向用户的电子邮件发送 6 位数验证码。客户端应用需要显示验证屏幕,用户可以输入代码,然后调用 verifyEmail(email:code:) 完成验证。只有这样用户才能使用电子邮件和密码登录。
requireEmailVerificationtrue 时,响应将具有:
  • accessToken = nil
  • user = nil
  • needsEmailVerification = true
这表明在用户登录之前需要通过选项 2 或 3 进行验证。

相关方法

方法描述
verifyEmail(email:code:)使用 6 位数代码验证电子邮件
resendVerificationEmail(email:)重新发送验证电子邮件

signIn()

使用电子邮件和密码登录现有用户。

参数

  • email (String) - 用户的电子邮件地址
  • password (String) - 用户的密码

示例

电子邮件验证

如果登录响应是:
这表明在用户登录之前需要通过选项 2 或 3(链接或代码,请参阅 signUp())进行验证。

signOut()

登出当前用户。

示例


getCurrentUser()

获取带有配置文件数据的已认证用户。

示例


setProfile()

更新当前用户的配置文件。

示例


密码重置

InsForge 支持两种密码重置方法,在后端中配置:
  • 代码方法:用户通过电子邮件接收 6 位数代码,验证它以获取重置令牌,然后重置密码
  • 链接方法:用户通过电子邮件接收包含重置令牌的魔法链接,然后直接重置密码

sendPasswordReset()

向用户发送密码重置电子邮件。电子邮件将包含 6 位数代码或魔法链接,具体取决于后端配置。

参数

  • email (String) - 用户的电子邮件地址

示例


exchangeResetPasswordToken()

将 6 位数重置代码交换为重置令牌。此方法仅用于基于代码的重置流程。

参数

  • email (String) - 用户的电子邮件地址
  • code (String) - 通过电子邮件接收的 6 位数代码

返回值

ResetPasswordTokenResponse

示例


resetPassword()

使用重置令牌重置用户的密码。

参数

  • otp (String) - 重置令牌(从 exchangeResetPasswordToken() 获取的代码流,或从魔法链接 URL 获取的链接流)
  • newPassword (String) - 满足配置要求的新密码

示例


signInWithOAuthView()

直接使用特定的 OAuth 提供商登录。此方法打开 OAuth 提供商的身份验证页面。 在 iOS 12+ 和 macOS 10.15+ 上,SDK 使用 ASWebAuthenticationSession 显示应用内身份验证浏览器,具有自动回调处理。

支持的提供商

参数

  • provider (OAuthProvider) - 要认证的 OAuth 提供商
  • redirectTo (String) - InsForge 身份验证后将重定向到的回调 URL

返回值

返回包含已认证用户和会话令牌的 AuthResponse

身份验证流程

示例

URL 方案配置

为您的应用注册回调 URL,将该确切值传递给 redirectTo,并将相同值添加到认证设置中的 allowedRedirectUrls。例如,您可以使用深层链接如 yourapp://auth/callback 或已声明的 HTTPS 回调如 https://app.example.com/auth/callback。如果 redirectTo 不在允许列表中,请求将以 HTTP 400 失败。

错误处理