MTSsso-Auth 1.0.1

MTSsso-Auth 1.0.1

Evgeny维护。



  • death654321

MTSsso-Auth

CI Status Version License Platform

示例

要运行示例项目,首先克隆仓库,并在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()

⚠️⚠️⚠️警告 - 请从sso后端请求对象Environment的所有字段

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)
        }
    }
}

⚠️返回代理和sso在获取/续期/验证令牌阶段可能返回的所有错误列表

"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"

可以建立以下客户端逻辑

  1. access_denied, expired_refresh_token, code_was_used, redirect_to_authorize - 请用户重新登录
  2. server_error - 技术故障,稍后会进行修复
  3. expired_access_token - 启动访问令牌更新流程
  4. invalid_scope - 您没有执行此操作的权限
  5. 其他所有错误 - 显示错误提示信息并建议联系银行

作者

death654321, [email protected]

许可证

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