MTSsso-Auth
示例
要运行示例项目,首先克隆仓库,并在Example目录中首先运行pod install
。
需求
安装
MTSsso-Auth通过CocoaPods提供。要安装它,只需将以下行添加到Podfile中
pod 'MTSsso-Auth'
使用说明
1 在appDelegate中导入MTSsso_Auth
2 在didFinishLaunchingWithOptions方法中插入代码
window = UIWindow(frame: UIScreen.main.bounds)
var urlComponents = URLComponents()
urlComponents.scheme = "http"
urlComponents.host = "sso-test.mbrd.ru"
urlComponents.port = 8090
let environment = Environment(url: urlComponents, secretKey: "654321", clientId: "msb_ios", redirectUri: "oauth-callback://SME")
let vc = OauthSignInViewController(environment: environment)
vc.delegate = self
window?.rootViewController = OauthNavigationViewController(rootViewController: vc)
window?.makeKeyAndVisible()
3 要获取access和refresh令牌,请订阅OuthTokenDelegate代理(登录后该方法将返回2个令牌)
extension AppDelegate: OuthTokenDelegate {
func getToken(token: Token?, error: Error?) {
print(token, error ?? nil)
}
}
4 请求更新access令牌
public func refreshAccessToken(refreshToken: String, completion: @escaping (Result<Token, Error>) -> ())
5 请求废除access令牌
public func revokeToken(refreshToken: String, completion: @escaping (Result<RevokeResult, Error>) -> ())
6 注销令牌的示例
fileprivate func revokeToken() {
var urlComponents = URLComponents()
urlComponents.scheme = "http"
urlComponents.host = "sso-test.mbrd.ru"
urlComponents.port = 8090
let envr = Environment(url: urlComponents, secretKey: "654321", clientId: "msb_ios", redirectUri: "oauth-callback://SME")
let netService = NetworkService(environment: envr)
netService.revokeToken(refreshToken: refreshToken) { result in
switch result {
case .success(let sussces):
print(sussces)
case .failure(let error):
print(error)
}
}
}
"invalid_request" "unauthorized_client" "access_denied" "unsupported_response_type" "invalid_scope" "server_error" "temporarily_unavailable" "invalid_client" "invalid_grant" "unsupported_grant_type" "invalid_redirect_uri" "invalid_authorize_code" "invalid_access_token" "invalid_refresh_token" "expired_access_token" "expired_refresh_token" "code_was_used" "unsupported_media_type" "redirect_to_authorize"
可以建立以下客户端逻辑
- access_denied, expired_refresh_token, code_was_used, redirect_to_authorize - 请用户重新登录
- server_error - 技术故障,稍后会进行修复
- expired_access_token - 启动访问令牌更新流程
- invalid_scope - 您没有执行此操作的权限
- 其他所有错误 - 显示错误提示信息并建议联系银行
作者
death654321, [email protected]
许可证
MTSsso-Auth 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。