Stytch 提供全面的移动身份验证解决方案,通过我们的移动 SDK 简化了与其 API 的集成。作为唯一提供全套 API 的身份验证提供商,Stytch 使您能够创建定制的端到端身份验证流程,以适应您的移动技术堆栈。Stytch 的 SDK 提供 Stytch 和 StytchUI 两种集成选项,使您能够打造灵活集成到您的应用程序中的身份验证体验。Stytch 提供完全可定制的无头 API 集成,以满足您的特定需求,而 StytchUI 则提供可配置的视图以加速集成过程。
注意:目前 StytchUI 仅支持我们的消费者客户端,B2B UI 即将推出!
如果您是 Stytch 的全新用户,在使用 SDK 之前,您首先需要访问 Stytch 首页,注册并在仪表板中创建一个新项目。然后,您需要调整您的 SDK 配置 —— 将您应用的 bundle id 添加到 Authorized applications,并启用您希望使用的任何 Auth methods。
Stytch 使用 Swift Package Manager 来管理我们的 Swift 代码的分发。它与 Swift 构建系统集成,以自动化下载、编译和链接依赖项的过程。要将 Stytch SDK 添加到您的 Xcode 项目,请完成以下步骤。
Other Linker Flags 下,添加 -ObjCimport StytchCore我们强烈建议您使用 “Up To Next Major Version”,并且永远不要直接指向 main 或任何其他分支。了解您正在使用的 SDK 版本将使我们更容易为您提供支持!
在使用 Stytch SDK 的任何部分之前,您必须调用 configure 以设置在您的项目仪表板中指定的公共令牌。
import StytchCore
StytchClient.configure(publicToken: "your-public-token")
StytchCore 为 Consumer 和 B2B 公开了客户端,请确保使用与您的项目配置相对应的客户端。为了以下示例的缘故,我们将使用消费者客户端:StytchClient。
以下基本示例是关于使用 OTP(一次性密码)进行身份验证。
import StytchCore
public class OTPAuthenticationManager {
var methodId: String = ""
// Send a OTP (one time passcode) via SMS
func sendOTP() {
Task {
do {
let parameters = StytchClient.OTP.Parameters(deliveryMethod: .sms(phoneNumber: "+12125551234"))
let response = try await StytchClient.otps.send(parameters: parameters)
// save the methodId for the subsequent authenticate call
self.methodId = response.methodId
} catch {
print(error.errorInfo)
}
}
}
// Authenticate a user using the OTP sent via SMS
func authenticateOTP(code: String) {
Task {
do {
let parameters = StytchClient.OTP.AuthenticateParameters(code: code, methodId: methodId)
let response = try await StytchClient.otps.authenticate(parameters: parameters)
print(response.user)
} catch {
print(error.errorInfo)
}
}
}
}
尽管 StytchCore 是使用 async/await 编写的,但我们使用 Sourcery 来生成可以与 Combine 一起使用或通过完成处理程序调用的 API 版本。如果您查看 generated 目录,您将看到 API,其文件名以 +AsyncVariants 结尾,其中包含生成的代码。例如,上面 API 的异步变体可以在这里引用:authenticate & send。
有关我们更常见的一些实现的更多信息和教程,请参阅以下内容
完整的参考文档可用于 StytchCore 和 StytchUI。
加入我们的 Slack 社区,参与讨论、提问和建议新功能!
查看 Stytch 论坛 或发送电子邮件至 support@stytch.com。
Stytch iOS SDK 在 MIT 许可下发布。 有关详细信息,请参阅 LICENSE。