Alamofire 提供了一个身份验证的拦截器 AuthenticationInterceptor
。
身份验证拦截器使用的正确方式
凭证,自定义刷新策略
struct TokenModel: HandyJson { |
授权中心,凭证应用与刷新
class SMAuthenticator: Authenticator { |
初始化 Session 的时候添加拦截器
private func customSessionConfiguration() -> Session { |
拦截器的两个方法
adapt:在发送请求前拦截,对请求适配处理,如果处理成功,则返回一个新的请求继续执行,处理失败,则抛出错误,取消请求。拦截器会在这个方法中应用凭证或进行刷新操作。
retry:在请求发生失败时,返回重试策略给到 session 重新发送请求。拦截器会在该方法中对失败云因进行判断是否是因凭证失败导致。必要时会对凭证进行刷新。
下面是整个 AuthenticationInterceptor
的实现:
public protocol AuthenticationCredential { |