2014-01-17 2 views
5

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

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

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

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

Любая идея?

+0

Я бы как узнать, выполнено ли это еще? есть примеры. Я до сих пор не могу заставить его работать. – kos

ответ

1

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

+0

Можете ли вы подробнее рассказать? – Abhishek

3

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

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

2

Ответ Naveen является правильным, но если вам просто нужна базовая информация о профиле и адрес электронной почты, вы можете вместо этого использовать маркер 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

+0

Привет, Ян! Недавно мы говорили о Google PHP SDK (о областях) в GitHub. Приятно видеть вас здесь, и с нетерпением жду этой новой функциональности. Идентификатор ID также используется в моем бэкэнд, чтобы избежать повторного запроса разрешений для зарегистрированных пользователей, поэтому thx для информации. –

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