我試圖獲得RestKit(版本0.10.2)以使用OAuth2進行身份驗證。我正在使用GTMOAuth2來處理OAuth交互。如何在iOS上將GTMOAuth2與RestKit集成?
我已經成功地獲得了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
的- (BOOL)authorizeRequest:(NSMutableURLRequest *)request;
,因爲它在訪問令牌到期時自動使用刷新令牌獲取新的訪問令牌。
順便說一句,RestKit是phasing it's support for OAuth;建議的方法是使用第三方庫授權請求。我asked for an example和響應指出我在類的方向子類,這是在development
分支。
所以,問題是:你是否成功地將RestKit 0.10.x與GTMOAuth2集成在一起,或者知道如何做到這一點?