Stytch iOS SDK Stytch iOS SDK

Test Status iOS macOS tvOS Swift Package Manager

简介

Stytch 提供全面的移动身份验证解决方案,通过我们的移动 SDK 简化了与其 API 的集成。作为唯一提供全套 API 的身份验证提供商,Stytch 使您能够创建定制的端到端身份验证流程,以适应您的移动技术堆栈。Stytch 的 SDK 提供 StytchStytchUI 两种集成选项,使您能够打造灵活集成到您的应用程序中的身份验证体验。Stytch 提供完全可定制的无头 API 集成,以满足您的特定需求,而 StytchUI 则提供可配置的视图以加速集成过程。

注意:目前 StytchUI 仅支持我们的消费者客户端,B2B UI 即将推出!

入门指南和 SDK 安装

如果您是 Stytch 的全新用户,在使用 SDK 之前,您首先需要访问 Stytch 首页,注册并在仪表板中创建一个新项目。然后,您需要调整您的 SDK 配置 —— 将您应用的 bundle id 添加到 Authorized applications,并启用您希望使用的任何 Auth methods

Stytch 使用 Swift Package Manager 来管理我们的 Swift 代码的分发。它与 Swift 构建系统集成,以自动化下载、编译和链接依赖项的过程。要将 Stytch SDK 添加到您的 Xcode 项目,请完成以下步骤。

  1. 打开 Xcode
  2. 文件 > 添加 Package Dependencies
  3. 在右上角输入 https://github.com/stytchauth/stytch-ios
  4. 选择 Package Requirements 并点击 “Add Package”
  5. 在您的 Build Settings 中的 Other Linker Flags 下,添加 -ObjC
  6. 在您的代码中 import StytchCore

我们强烈建议您使用 “Up To Next Major Version”,并且永远不要直接指向 main 或任何其他分支。了解您正在使用的 SDK 版本将使我们更容易为您提供支持!

package-installation

配置

在使用 Stytch SDK 的任何部分之前,您必须调用 configure 以设置在您的项目仪表板中指定的公共令牌。

import StytchCore

StytchClient.configure(publicToken: "your-public-token")

Stytch Core 用法

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

更多 Stytch 用法

有关我们更常见的一些实现的更多信息和教程,请参阅以下内容

延伸阅读

完整的参考文档可用于 StytchCoreStytchUI

浏览项目和运行示例应用

说明可以在这里找到!

获取帮助并加入社区

加入我们的 Slack 社区,参与讨论、提问和建议新功能!

查看 Stytch 论坛 或发送电子邮件至 support@stytch.com

许可

Stytch iOS SDK 在 MIT 许可下发布。 有关详细信息,请参阅 LICENSE