Add InsForge to your Swift Package Manager dependencies:
Enable Logging (Optional)
For debugging, you can configure the SDK log level and destination:
Log Levels:
| Level | Description |
|---|
.trace | Most verbose, includes all internal details |
.debug | Detailed information for debugging |
.info | General operational information (default) |
.warning | Warnings that don’t prevent operation |
.error | Errors that affect functionality |
.critical | Critical failures |
Log Destinations:
| Destination | Description |
|---|
.console | Standard output (print) |
.osLog | Apple’s unified logging system (recommended for iOS/macOS) |
.none | Disable logging |
.custom | Provide 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 后端提供三种选择:
- 不需要电子邮件验证 - 用户可在注册后立即登录。
SignUpResponse 将具有 hasSession = true。
- 基于链接的验证 - 用户必须打开其电子邮件并单击验证链接才能登录。
- 基于代码的验证 - InsForge 后端向用户的电子邮件发送 6 位数验证码。客户端应用需要显示验证屏幕,用户可以输入代码,然后调用
verifyEmail(email:code:) 完成验证。只有这样用户才能使用电子邮件和密码登录。
当 requireEmailVerification 为 true 时,响应将具有:
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 失败。
错误处理