【发布时间】:2014-02-20 00:49:50
【问题描述】:
所以我使用 AFNetworking 来使用 API。
此 API 要求使用 hmac 对所有请求进行签名。 hmac 是根据 headers、url 和 body 的组合计算的。然后将 hmac 作为自定义标头添加到请求中。
计算 hmac 并将其添加到标题中不是问题。但是,似乎在处理请求之前“在最后一分钟”添加了一些标头。
我的 API 客户端是 AFHTTPSessionManager 的子类,我一直在寻找进行签名的最佳位置,目前正在通过重载来实现:
- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request
completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler
当我在测试 API 服务器上模拟请求以查看我收到的标头时,总是有 2 个附加标头在我签署请求时不存在:Accept-Encoding 和 Connection,有时我也会得到Cookie 标头。
除了 hmac 签名之外,我自己添加的唯一标头是 Accept 和 Content-Type 以及特定于 APIi 的自定义标头,指示我的客户密钥。
所以我的问题是,签署此协议的最佳方式/地点是什么?
【问题讨论】:
标签: objective-c ios7 afnetworking afnetworking-2