PassportKit 1.7.5

PassportKit 1.7.5

james_wolfe 维护。



 
依赖
Valet~> 3.2.0
Alamofire~> 5.4.1
 

  • James Wolfe

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 类中的刷新功能和刷新令牌。