Alamofire 4的标头授权最佳做法,可捕获全局401代码

all*_*tio 5 ios swift alamofire

我正在使用Alamofire 4.0的应用程序中实现授权,我有一个令牌要添加到我发出的每个HTTP请求的标头中,而且我必须检查每个请求的响应代码是否为401,在这种情况下,我有注销用户。

最佳做法是什么?有没有一种简单的方法可以将此行为添加到每个请求?

我看了一下会话管理器和请求适配器 这里,创建一个单例请求管理器并使用它创建请求非常容易,但是我找不到找到对401响应进行集中验证的好方法码。这必须是一般性的验证,如果失败,则我注销用户,如果通过,则将处理请求的人交给提出请求的人。

我期望的目标是在我的代码中只检查1个401错误代码。

到处都找不到令人满意的答案关于此操作的任何建议?

Mur*_*m K 0

中的简单GET方法SessionManager。为 Web 服务创建一个单独的类,并在每个请求中进行验证。

  let alamofireManager: SessionManager = {
    let configuration = URLSessionConfiguration.default
    configuration.httpMaximumConnectionsPerHost = AppConstants.maxSimultaneousDownloads
    configuration.requestCachePolicy = .reloadIgnoringLocalCacheData
    return SessionManager(configuration: configuration)
  }()


 self.alamofireManager.request(UrlString)
        .responseJSON { response in

          print("response: \(response)")

          guard response.result.isSuccess else {
          //Request fails here. Trigger here to log out the user
            return
          }

          if let JSON = response.result.value {
            print("Successful")
            //or check response code here

          }
      }
Run Code Online (Sandbox Code Playgroud)