iOS Moya实现OAuth请求的方法

2020-01-21 07:47:51于丽

3. Moya 部分

Moya 的 provider 在初始化时可以传入 SessionManager ,因此参照文档,可以先使用 OAuth2 生成一个特定的 SessionManager :


func getManager() -> SessionManager {

    let oauth2 = OAuth2CodeGrant(settings: [
      "client_id": "my_swift_app",
      "client_secret": "C7447242",
      "authorize_uri": "https://www.easck.com/login/oauth/access_token",
      "redirect_uris": ["myapp://oauth/callback"],
      "scope": "user repo:status",
      "secret_in_body": true,
      "keychain": false,
      ] as OAuth2JSON)

    let sessionManager = SessionManager()
    let oauthHandler = OAuth2Handler(oauth2: oauth2)
    sessionManager.adapter = oauthHandler
    sessionManager.retrier = oauthHandler
    return sessionManager
  }

进而生成带 OAuth 的 provider:


fileprivate lazy var provider: MoyaProvider = {
  return MoyaProvider<API>(manager: self.getManager(),
              plugins: [NetworkLoggerPlugin()])
}()

使用

使用生成的 provider 发送请求即可,此时 Moya 可自动处理 OAuth 认证信息。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持ASPKU。


注:相关教程知识阅读请移步到IOS开发频道。