所以我使用AFNetworking来使用API。使用AFNetworking 2.0签署API请求
此API要求使用hmac对所有请求进行签名。 hmac通过标题,网址和正文的组合进行计算。然后将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专用的自定义标头,表示我的客户密钥。
所以我的问题是,做这个签名的最佳方式/地点是什么?
感谢您的反馈意见,不幸的是选项1不是选项,我必须使用这个API,并且这是要求在沙箱环境中使用它。 我一定会对选项2做出反应,然后回复你。关于方案3,如果项目已经放弃,我宁愿现在就避免它。 – YoGiN
@YoGiN看到我更新的编辑,并让我知道,如果这有效。 –