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开发频道。










