Krampus
Krampus是Santa的小助手,提供了网络请求的授权。目前存在一个用于keycloak的授权实现。支持使用授权代码和用户名、密码进行登录。此外,Krampus还处理访问令牌刷新,并将刷新令牌安全地存储在用户的keychain中。Krampus旨在与基于资源的网络库Santa无缝协作。
配置您的授权
let webservice = ImplWebservice()
lazy var authorization = {
return Krampus.keycloakAuthorization(
baseUrl: "https://keycloak-url.de",
clientId: "client",
realm: "realm",
redirectUrl: "needed for login with auth code",
keychain: CredentialsKeychain(credentialsServiceName: "KeychainTestKrampusLogin"),
webservice: webservice)
}()
要使用一个运行中的keycloak实例登录
authorization.login(withUsername: "username", password: "password") { result in
switch result {
case .success:
// The credentials are already saved within the keychain.
// Show the user that the login was successful
case .failure(let error):
// Handle error
}
}
启用Santa Web服务的授权
let webservice = ImplWebservice()
webservice.authorization = authorization
功能
- 解析JWT到可访问的字典
Keycloak
- 使用授权代码登录
- 使用用户名和密码登录
- 注销
- 处理访问令牌刷新
- 在用户的keychain中存储Keycloak凭证
- 支持离线令牌
待办事项
- 编写更多测试
- 提供使用文档
要求
- Swift 5
- iOS 12.0 或更高版本
安装
Krampus 可通过 CocoaPods 获得。要安装它,只需将以下行添加到您的 Podfile 中
pod 'Krampus'
作者
Christian Braun
许可证
Krampus 支持 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。