2012-06-27 6 views
0

iOS에서 RestKit을 사용하여 Google 드라이브 API에 액세스하려고하지만 Oauth 인증에 문제가 있습니다. Oauth Support On RestKitRestKit Oauth 2 Google API

은 기본적으로 우리는 다음과 같이 클라이언트를 만들 :

oauthClient = [RKClientOAuth clientWithClientID:[Client Id] secret:[Client Secret] delegate:[Your Delegate]]; 
[oauthClient setAuthorizationCode:[User Authorization Code]]; 
[oauthClient setAuthorizationURL:[Authorization Endpoint]]; 
[oauthClient setCallbackURL:[Your application callbackurl]]; 
[oauthClient validateAuthorizationCode]; 

우리가 대리인에 액세스 토큰을받을

나는 그들이 여기에 주제에있는 위키 페이지를 다음 봤는데 메소드

- (void)OAuthClient:(RKOAuthClient *)client didAcquireAccessToken:(NSString *)token 

여기서 우리는 ObjectManager를 생성하여 요청과 다른 모든 작업을 수행 할 수 있습니다.

RKObjectManager* objectManager = [RKObjectManager sharedManager]; 
objectManager.client.baseURL = @"YOUR API URL"; 
objectManager.client.OAuth2AccessToken = @"YOUR ACCESS TOKEN"; 
objectManager.client.authenticationType = RKRequestAuthenticationTypeOAuth2; 

이 모든 경우에 몇 가지 문제가 발생했습니다. 있는 그대로

[oauthClient setAuthorizationCode:[User Authorization Code]]; 

내가 고객 ID, 클라이언트의 비밀, 인증 엔드 포인트, 콜백 URL 및 API의 URL에 문제가 없었 :

  • 먼저 우리는 인증 코드는 여기에 필요한받을 수 있습니까 어떻게 대부분 Google 콘솔 API에서 제공되지만이를 얻는 방법을 알지 못합니다.

  • 둘째, 액세스 토큰은 Google API에서 이름이 지정된 임시 액세스 토큰 또는 새로 고침 토큰이됩니까? 처음이라면 어떻게 새로 고침 토큰을 얻을 수 있습니까?

나는 이것을 RestKit과 함께 해보려고했지만 더 좋은 방법이있을 수 있으므로 다른 아이디어에 대해 열어 둘 수 있습니다. Restkit에서 Oauth 지원에 대한 많은 정보를 찾을 수 없습니다.

덕분에 사전에

+0

아직 해결 방법을 찾았습니까? Restkit을 사용하면서 똑같은 문제를 보았습니다. 솔직히 위키가 첫 번째 요청에서 인증 코드를 제공해야하는 것처럼 들리므로 혼란 스럽습니다. 그러나 내가 아는 한, Oauth2는 첫 번째 요청에 대한 응답으로 인증 코드로 응답하는 인증 서버에서 작동하며 두 번째 요청에서 마지막으로 액세스 토큰을 획득하는 데 사용됩니다. – Vlad

답변

0

, 당신은 자원 소유자의 권한 부여 서버로 사용자를. 인증 서버와 사용자가 서로를 확인하고 앱에 인증 코드가 반환됩니다. 권한 서버로 돌아가서 액세스 토큰에 대한 권한 부여 코드를 교환합니다.

액세스 토큰에 시간이 지정된 경우 액세스 토큰 시간이 초과되었음을 발견하면 새로 고침 토큰을 사용하여 새 액세스 토큰을 요청하십시오.