2013-12-09 46 views
1

我知道方法如何處理的OAuth2 refreshToken與RestKit 0.20

-[[RKObjectManager sharedManager].HTTPClient setAuthorizationHeaderWithToken:] 

,我想,這個方法接受的accessToken。如何處理OAuth2 refreshToken?

+0

因此,您已經在處理OAuth登錄並獲取令牌,那麼您只需設置令牌?令牌在每個請求中作爲頭髮送? – Wain

+0

是的,沒錯。我也試圖設置AFOAuth2Client(AFHTTPClient上的擴展)來處理訪問和刷新標記,但是RKObjectManager返回錯誤響應。我將添加代碼示例 – Igor

回答

4

好吧,我解決我的問題。所有的 首先,你必須從http://goo.gl/zdTdlJ

這是AFHTTPClient擴展女巫下載AFOAuth2Client處理的OAuth2認證和這裏的片斷如何初始化它,並將它設置成RestKit作爲了HTTPClient。

AFOAuthCredential* credential = [AFOAuthCredential credentialWithOAuthToken:accessToken tokenType:kAFOAuthCodeGrantType]; 
[credential setRefreshToken:refreshToken expiration:expirationDate]; 
AFOAuth2Client* oAuth2Client = [AFOAuth2Client clientWithBaseURL:[NSURL URLWithString:baseUrl] 
                   clientID:clientID 
                    secret:secret]; 
[oAuth2Client setAuthorizationHeaderWithToken:accessToken]; 

// This line is for environment where you don't have valid certificate. 
// For example for development environment 
[oAuth2Client setAllowsInvalidSSLCertificate:YES]; 

[[RKObjectManager sharedManager] setHTTPClient:oAuth2Client]; 
[[RKObjectManager sharedManager] getObjectsAtPath:path parameters:nil 
    success:^(
     RKObjectRequestOperation* operation, RKMappingResult* mappingResult) { 
      // Handle success response 
    } failure:^(RKObjectRequestOperation* operation, NSError* error) { 
      // Handle failure response 
}];