use*_*436 6 ios oauth-2.0 swift alamofire
目前正在学习如何通过 Alamofire 添加 OAuth2 并感到困惑。我正在使用密码授予类型,当请求失败时,我知道重试器启动并请求令牌刷新。令人困惑的部分是我使用哪个?
Alamofire RequestRetrier + 请求适配器
第一个使用较少的代码,因此不确定它是否具有我需要的所有功能。我也找不到解释这个过程的具体例子。
我相信以下执行刷新请求?
private func refreshTokens(completion: RefreshCompletion) {
guard !isRefreshing else { return }
isRefreshing = true
let urlString = "\(baseURLString)/oauth2/token"
let parameters: [String: Any] = [
"access_token": accessToken,
"refresh_token": refreshToken,
"client_id": clientID,
"grant_type": "refresh_token"
]
sessionManager.request(urlString, withMethod: .post, parameters: parameters, encoding: .json).responseJSON { [weak self] response in
guard let strongSelf = self else { return }
if let json = response.result.value as? [String: String] {
completion(true, json["access_token"], json["refresh_token"])
} else {
completion(false, nil, nil)
}
strongSelf.isRefreshing = false
}
}
Run Code Online (Sandbox Code Playgroud)
然后将其传递回以适应先前的请求?
func should(_ manager: SessionManager, retry request: Request, with error: Error, completion: @escaping RequestRetryCompletion) {}
Run Code Online (Sandbox Code Playgroud)
这是实现这一点的正确方法吗?
谢谢
| 归档时间: |
|
| 查看次数: |
3167 次 |
| 最近记录: |