Alamofire 4的标头授权最佳实践,全球401代码捕获

时间:2016-10-26 06:51:28

标签: ios swift alamofire

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

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

我查看了会话管理器并请求了适配器here,创建单例请求管理器并使用它来创建请求非常容易,但我找不到一个很好的添加方法401响应代码的集中验证。 这必须是一般性验证,如果失败我会注销用户,如果通过,我会让请求处理请求的任何人。

我希望的目标是在代码中只有一个点检查401错误代码。

我没有找到满意的答案 关于如何做到这一点的任何建议?

1 个答案:

答案 0 :(得分:0)

GET中的简单SessionManager方法。为每个请求中的验证创建一个单独的webservice类。

  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

          }
      }