ios - 如何将 AFOAuth1Client 与 AFIncrementalStore 一起使用

标签 ios objective-c oauth afnetworking

如何让 AFOAuth1Client 与 AFIncrementalStore 一起工作?

我能够使用 AFOAuth1Client 获取 AFOAuth1Token 的有效实例,并且能够将其保存到钥匙串(keychain)中以供重复使用。我的 AFOAuth1Client 单例实例能够使用 token 进行调用,但我不确定如何将其传递给实现 AFIncrementalStoreHTTPClient 协议(protocol)的 AFRESTClient 实例使用。

AFRESTClient 的方法“setAuthorizationHeaderWithToken:”需要一个字符串,但 token 中存储的所有属性似乎都不起作用。我需要在这里做什么?我是否完全错误地解决了这个问题?我的理解是 AFOAuth1Client 应该只用于获取 token ,但我开始认为我可能偏离了方向。

编辑:也许是问题的更简洁版本:How do I get AFOAuth1Client to work with AFIncrementalStore?

最佳答案

我打算建议修改 AFRESTClient 以从 AFOAuth1Client 继承,但我发现了这个拉取请求,其中 Matt 指出 AFOAuth1Client 应该与您的客户端子类分开:https://github.com/AFNetworking/AFOAuth1Client/pull/6

我广泛使用了 AFNetworking,但我编写了自己的身份验证而不是使用 AFOAuth1Client。因为我在我的 AFHTTPClient 子类中覆盖了 requestWithMethod 。授权 header 不是静态的,它取决于每个请求的路径和参数。

结合上面 Matt 的指导,我认为您应该将 authClient 属性添加到您的 Client 子类,然后将该客户端计算的 token 添加到您自己的请求中 - 类似于 AFOAuth1Client 本身的方式。

我不确定,但我会试一试。

//在您的 AFRestClient 子类中

@property(nonatomic, strong) AFOAuth1Client *authClient;
...

- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
                                  path:(NSString *)path
                            parameters:(NSDictionary *)parameters
{

   NSMutableURLRequest *request = [super requestWithMethod:method path:path parameters:parameters];

   NSString *authorizationHeader = [self.authClient authorizationHeaderForMethod:method path:path parameters:parameters];
   [request setValue:authorizationHeader forHTTPHeaderField:@"Authorization"];


  return request;
}

在发出第一个请求之前,您将初始化 authClient 并获得 [self.authClient authorizeUsingOAuthWithRequestTokenPath:...]

关于ios - 如何将 AFOAuth1Client 与 AFIncrementalStore 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17603483/

相关文章:

ios - 使用未解析的标识符 'present' - 当前方法不再有效

ios - heightForRowAtIndexPath 内的当前单元格高度?

objective-c - 如何在 iOS 和 Mac 中使用搜索字段控件?

objective-c - iOS - 如何使用无序的 CGPoints 绘制特定的 CGPath

iPhone OAuth 教程?

objective-c - 使用 OAuth 从 Flickr 获取访问 token 时签名无效

ios - AirPlay 镜像的欠扫描问题

ios - AMSlideMenu 重叠状态栏?

objective-c - 滚动时 UITableView subview 出现在错误的部分?

ios - 如何通过移动客户端 oauth-login 服务器应用程序(尤其是 iOS、Twitter,但通常也是如此)