我正在尝试让RestKit(版本 0.10.2)通过 OAuth2 进行身份验证。我正在使用GTMOAuth2来处理 OAuth 交互。
我已经成功让 GTMOAuth2 让我登录并向我正在使用的 api 发出请求。我还设法让 RestKit 使用我的访问令牌发出请求:
- (void)setRKAuthorizationToken:(NSString *)authorizationToken {
RKObjectManager* objectManager = [RKObjectManager sharedManager];
NSString* authHeader = [NSString stringWithFormat:@"Bearer %@", authorizationToken];
[objectManager.client setValue:authHeader forHTTPHeaderField:@"Authorization"];
}
在此代码示例中,我手动设置 HTTP 标头,因为 RestKit 对 OAuth2 的支持将标头设置为Authorization: OAuth2 <accessToken>
而不是Authorization: Bearer <accessToken>
.
无论如何,在需要使用刷新令牌刷新访问令牌之前,这很有效。
我真正想做的是告诉 RestKit 使用GTMOAuth2Authentication
's - (BOOL)authorizeRequest:(NSMutableURLRequest *)request;
,因为当访问令牌过期时,它会自动使用刷新令牌获取新的访问令牌。
顺便说一句,RestKit 正在逐步支持 OAuth;建议使用第三方库授权请求。我问了一个例子,响应指向了类到子类的方向,它们在development
分支中。
所以,问题是:您是否成功地将 RestKit 0.10.x 与 GTMOAuth2 集成或知道如何实现?