2015-09-15 4 views
1

У меня сложная проблема. Мне нужно запустить аутентификацию Google с помощью приложения iOS и передать значение code, которое API Google возвращает к конечной точке сервера, которую я создал. Это отлично работает, если я инициировал запрос от приложения JavaScript. Here Документация Google.redirect_uri_mismatch при попытке аутентификации с помощью API Google

Однако, если я инициирую запрос из приложения iOS с помощью следующего кода, он возвращается и говорит, что у меня есть несоответствие URI, потому что идентификатор oAuth, который я создал, если тип Web Application. Если я использую Other, я получу еще одну ошибку: Error fetching OAuth2 access token, message: 'invalid_grant: Invalid code.'.

Сказав это, вот как я начинаю аутентификацию из приложения iOS.

NSString *urlString = @"https://accounts.google.com/o/oauth2/token"; 
NSURL *tokenURL = [NSURL URLWithString:urlString]; 

// We'll make up an arbitrary redirectURI. The controller will watch for 
// the server to redirect the web view to this URI, but this URI will not be 
// loaded, so it need not be for any actual web page. 
NSString *redirectURI = @"urn:ietf:wg:oauth:2.0:oob"; 
GTMOAuth2Authentication *auth = [GTMOAuth2Authentication authenticationWithServiceProvider:@"Google" 
                        tokenURL:tokenURL 
                       redirectURI:redirectURI 
                        clientID:kClientID 
                       clientSecret:kClientSecret]; 

Вы видите какие-либо вопиющие проблемы?

ответ

0

URL-адрес перенаправления должен быть зарегистрирован в облачном приложении Google. Он не может использовать подстановочные знаки.

Я бы сказал: убедитесь, что он получает правильный перенаправление uri. Крайне важно, чтобы uri был точным.

+0

Альберто, спасибо, но 'redirectURI' здесь произвольное значение для IOS приложения. Это, по крайней мере, то, что говорится в документе. Если вы так не думаете, что должно быть «redirect_uri»? Это полный путь к API-интерфейсу сервера? –

+0

redirectURI shoud будет полностью квалифицированным parth в папку или файл на вашем сервере. https://developers.google.com/api-client-library/php/auth/web-app –

Смежные вопросы