Вход в iPhone Google+ и OAuth2 в бэкэнд

Изучая руководство по использованию Google+ SDK для iOS в этой ссылке , я могу настроить проект и предоставить моему приложению доступ к токену доступа. Однако я не хочу использовать токен в устройстве для получения его имени, электронной почты и т. Д. Я хочу получить код временного доступа (который может быть изменен для токена OAuth2) или токен идентификатора, как и на моем Android-устройстве заявление. Это называется google идентификатором кросс-клиента .

Идея заключается в том, что бэкэнд-сервер получит этот код обмена и будет генерировать токен доступа для получения профиля пользователя, электронной почты и т. Д. Затем пользователь регистрируется с этой информацией. Однако токен доступа, создаваемый приложением iOS, может потребляться только самим приложением, так как используемый идентификатор приложения является идентификатором приложения iOS. Я попытался изменить идентификатор приложения с идентификатором сервера, но затем он получил redirect_uri_mismatch.

Попытка использовать токен доступа непосредственно на сервере спровоцирует исключение Google_OAuth_Exception, поскольку идентификатор клиента сервера не равен идентификатору клиента приложения.

У меня есть другой подход, основанный на открытии веб-страницы, но я хотел использовать собственный процесс входа в Google+.

Есть идеи?

Мы работаем над этой функцией. Это позволит приложению получить «код», который вы можете отправить на свой сервер для хранения автономного доступа.

Извините, вам придется подождать пару недель (извините, у вас нет точной даты).

Ответ Навеена правильный, но если вам просто нужна базовая информация о профиле и адрес электронной почты, вы можете вместо этого использовать маркер id. Это будет включать адрес электронной почты (если вы запросили область электронной почты) и идентификатор пользователя, который может использоваться для запроса информации общедоступного профиля из API Google+, без необходимости передавать код или токен доступа. Получение идентификационного маркера очень просто

[GPPSignIn sharedInstance] setHomeServerClientID:@"911581857976.apps.googleusercontent.com"]; - (void) finishedWithAuth:(GTMOAuth2Authentication *)auth error:(NSError *)error { if (error) { NSLog(@"Error: %@", error); return; } NSLog(@"ID Token: %@", [[GPPSignIn sharedInstance] idToken]); } 

Я написал более длинный пример в сообщении в блоге некоторое время назад, что может помочь: http://www.riskcompletefailure.com/2013/11/client-server-authentication-with-id.html

Быстрый ответ может заключаться в настройке дополнительных URL-адресов переадресации в Cloud Console.

На сегодняшний день это доступно: https://developers.google.com/+/mobile/ios/sign-in#enable_server-side_api_access_for_your_app

Interesting Posts
Давайте будем гением компьютера.