Auth Challenge Alamofire 2.0

时间:2015-09-30 05:49:51

标签: authentication swift2 alamofire

由于我们将项目更新为Swift 2和Alamofire到版本2.0,我们观察到有关基本身份验证的以下行为:当我们使用身份验证集发送请求(无论何种类型)时,请求始终在没有身份验证标头的情况下发送第一次。在后端以状态码401回答之后,alamofire添加认证头并再次重新发送请求。我们使用以下剪辑发送请求:

Alamofire.request(request).authenticate(user: Config.serviceAuthUser, password: Config.serviceAuthPassword)

有没有办法强制Alamofire在每个请求中包含身份验证标头?我们希望避免这种针对降低网络和服务器流量的每个请求的auth挑战。我们有一个适用于iOS8的解决方案,我们在Alamofires Manager的共享实例的会话配置中添加了auth头,如下所示:

Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders = authHeader

但是对于iOS9,这不再起作用了,因为只返回并修改了配置对象的副本。

是否有其他方法可以避免此auth挑战过程并强制Alamofire在每个请求中包含auth标头?

1 个答案:

答案 0 :(得分:1)

提出两个请求是Apple如何设计基础URL加载系统。 Alamofire authenticate方法只允许您提供凭据以便在挑战发生时提供。

如果要直接提供标头,请使用headers方法上的request参数。此外,您可以将user:password凭据直接插入到URL中。