FootprintSwift

Requirements

安装

Swift Package Manager (Swift 包管理器)

你可以使用 Swift Package Manager (Swift 包管理器) 将 FootprintSwift 添加到你项目的 Package.swift 文件中来安装它

import PackageDescription

let package = Package(
    name: "YourProject",
    dependencies: [
        .package(url: "https://github.com/onefootprint/footprint-swift", from: "0.0.1")
    ],
    targets: [
        .target(
            name: "YourTarget",
            dependencies: ["FootprintSwift"])
    ]
)

CocoaPods

要使用 CocoaPods 将 FootprintSwift 集成到你的 Xcode 项目中,请在你的 Podfile 文件中指定它

 pod 'FootprintSwift'

用法

有两种方法可以利用 FootprintSwift

Webview (网页视图)

你首先需要导入它,然后按照以下示例中的说明进行配置。

import FootprintSwift

let config = FootprintConfiguration(
    publicKey: "yourPublicKey",
    scheme: "yourScheme",
    onCancel: {
        // Handle dismiss
    },
    onComplete: { validationToken in
        // Handle completion with validation token
    }
)
Footprint.initialize(with: config)

初始化之后,将出现一个 Webview (网页视图),它将引导用户完成 playbook 中定义的常规流程。

Onboarding components (beta) (入职组件 (beta))

通过这种方法,你可以更好地控制流程以及如何为用户呈现 UI。

初始化

import FootprintSwift

try await FootprintProvider.shared.initialize(
    configKey: "yourPublicKey"                       
)

以上是最简单的入门方法,你可以查看 initialize 方法以了解它接受的其他参数。

Inline OTP (内联 OTP)

现在你可以使用函数创建电子邮件或电话验证,而不是依赖 Webview (网页视图)。

创建挑战

import FootprintSwift

 try await FootprintProvider.shared.createEmailPhoneBasedChallenge(
    email: 'lorem@onefootprint.com', 
    phoneNumber: '+15555550100'
)

验证挑战

使用 verify 函数,通过传递验证码作为参数来完成挑战。

import FootprintSwift

try await FootprintProvider.shared.verify(verificationCode: code)

存储数据

顾名思义,这是将用户数据持久保存在我们 vault 中的方法。

import FootprintSwift

let vaultData = VaultData(
    idAddressLine1: addressLine1,
    idAddressLine2: addressLine2,
    idCity: city,
    idCountry: country,
    idDob: dobString,
    idFirstName: firstName,
    idLastName: lastName,
    idMiddleName: middleName,
    idSsn9: ssn,
    idState: state,
    idZip: zipCode
)
                                
try await FootprintProvider.shared.vault(vaultData: vaultData)

检索 vault 数据

如果在 OTP 之后任何时候,你需要访问 vault 数据,你可以通过以下方式进行操作:

import FootprintSwift

let vaultData = try await FootprintProvider.shared.getVaultData()                               

注意: FootprintProvider.shared.verify 也返回 vaultData,

处理流程

除了依赖 handoff 和重新打开 Webview (网页视图) 之外,我们可以通过一个简单的函数来实现这一点。但是,在某些情况下,我们需要回退到 handoff (Webview)。

  1. 如果用户需要进行文档升级(这是你的情况,因为用户可能需要根据 playbook 上配置的规则提交文档)。
  2. 如果你的 playbook 配置要求你收集 passkeys/id-docs。
import FootprintSwift

do {
    let response = try await FootprintProvider.shared.process()
    } catch {        
       if let footprintError = error as? FootprintError, 
          footprintError.domain == FootprintErrorDomain.process.rawValue { 
            do {
                try await FootprintProvider.shared.handoff(
                    onCancel: {
                        print("Handoff was canceled by the user")                        
                    },
                    onComplete: { validationToken in
                        print("Handoff completed successfully with token: \(validationToken)")                       
                    },                                           
                    onError: { error in
                        print("Error occurred during handoff: \(error)")                        
                    }
                )
            }    

许可证

FootprintSwift 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。