PassportKit
Swift 库,用于快速轻松地进行 Oauth 身份验证。
使用 Cocoapods 安装
pod 'PassportKit'
使用 Swift Package Manager 安装
- 导航到
文件->Swift Packages->添加包依赖
- 选择您的目标,然后搜索 PassportKit。
- 将版本设置为 1.5(如果还没有的话)
- 单击“下一步”进行安装
快速开始
首先创建一个 PassportConfiguration,这将为目标提供除电子邮件和密码之外的所有必要参数。
func setupPassport() {
guard let baseURL = URL(string: "https://google.com") else { return nil }
let configuration = PassportConfiguration(baseURL: baseURL, mode: .standard(clientID: "1", clientSecret: "awdoncoin12onaoinaoinda9"), keychainID: "PassportTest")
PassportKit.shared.setup(configuration)
}
然后您需要设置一个模型(viewModel)以传递给身份验证函数,此模型包含一个电子邮件和一个密码。值可以使用字符串或文本字段作为参数进行设置。
func setupViewModel() -> PassportViewModel {
let model = PassportViewModel(delegate: self)
model.setEmail(string: "[email protected]")
model.setPassword(string: "secret123")
return model
}
一旦您有了 PassportViewModel,您就可以调用身份验证方法,将模型作为参数传递。这将发送一个网络请求,如果失败,将通过完成处理器返回错误。
PassportKit.shared.authenticate(model) { error in
if let error = error {
print(error.localizedDescription)
} else {
guard let token = passport?.authToken else { return }
print("Token: \(token)")
}
}
如您在上面的成功功能中看到的,PassportKit 附带一个 PassportKitAuthenticationManager 类,它使用密钥链在您最初在 PassportConfiguration 中设置的密钥链 ID 中安全地存储您的身份验证令牌。
Laravel Sanctum 支持
PassportKit 现在支持 Laravel Sanctum,使用 passport kit 完全相同,但在设置时使用 sanctum 模式(这将不再需要客户端 ID 或密钥)。
func setupPassport() {
guard let baseURL = URL(string: "https://google.com") else { return nil }
let configuration = PassportConfiguration(baseURL: baseURL, mode: .sanctume, keychainID: "PassportTest")
PassportKit.shared.setup(configuration)
}
请注意,在 sanctum 模式下使用 PassportKit 时,不再提供 AuthenticationManager
类中的刷新功能和刷新令牌。