Делает Google' s предложение UserInfo API какие-либо гарантии?

Мы осуществили Google OAuth для нашего веб-сайта несколько месяцев назад. До сих пор у двух пользователей (~100) были неполные профили userinfo. Мы звоним'https://www.googleapis.com/oauth2/v1/userinfo?', с действительным символом и ответом json содержит только, [место действия, verified_email, электронная почта, id].

Доктора (https://developers.google.com/accounts/docs/OAuth2Login#userinfocall) не явные, но способ, которым я интерпретирую их,

Ответ должен ВСЕГДА включать: [id, электронная почта, verified_email, имя, given_name, family_name, часовой пояс, пол] и ИНОГДА включайте: [картина, место действия]

Кто-либо знает, какая гарантия идет с UserInfo API? Я должен отклонить неполные профили как инвалид? Есть ли какое-либо другое объяснение того, почему профиль был бы неполным?

UPDATE 3/6/14
I was able to replicate the problem. We send the user off to Google requesting, two scopes:

https://www.googleapis.com/auth/userinfo.profile
and
https://www.googleapis.com/auth/userinfo.email

Насколько я могу сказать, что Google не позволяет пользователям избирательно подходить к выбору, какие объемы они позволяют. Это все или ничего. Однако я смог удалить объем userinfo.profile из URL и перезагрузить страницу. Это заставило меня быть, передают обратно с действительным символом, но не правильным объемом. Я должен буду поразить tokeninfo конечную точку и удостовериться, что правильный объем был разрешен.

2
nl ja de

3 ответы

Вы используете OpenID также? Я сильно подозреваю, что у тех пользователей на самом деле нет действительных символов OAuth для UserInfo, а скорее вы получаете данные, соответствующие более слабому разрешению OAuth. Идеально, спросите тех пользователей, какие данные для вашего веб-сайта появляются на их странице безопасности счетов Google, и сравните это с тем, что находится в том из функционального пользователя, например, вас.

Попытайтесь отменить свои символы и поразить конечную точку так или иначе и посмотрите то, что заканчивается, вы добираетесь.

0
добавлено
I' m не уверенный я понимаю ваш ответ. Чтобы разъясниться мы НЕ используем OpenID. Мы используем технологический процесс серверной стороны. Пользователь выброшен к google' s страница OAuth, возвращается с "кодом", который обменен (серверная сторона) на символ через"accounts.google.com/o/oauth2/token"; конечная точка
добавлено автор Charles, источник

NB: This is what I think:

Я имею, также работали с OAuth некоторое время времени теперь и столкнулись с этой проблемой в количестве случаев с профилями в Facebook, например. Честно говоря, я не вижу, почему запрос должен возвратить неполные данные (предполагающий, что объем правилен), кроме этого, фактический профиль от поставщика неполный (хотя не имеет смысла для вас иметь этот [место действия, verified_email, электронная почта, id] и никакой [firstName, lastName] ). Например, у некоторых профилей нет фотографии профиля e.t.c.

В целом, я сказал бы: Это не гарантируется (и это не просто характерно для Google). Я написал сервер идентичности OAuth прежде, и OAuth ничего не делает (если я не пропустил его) провести в жизнь тип данных, необходимо выставить через API. Необходимо проверить данные, прежде чем вы сохраните их.

И отклонение представляет часть , я думаю, что это должно быть критериями, которые вы устанавливаете на своем заявлении сказать, что вы не принимаете профили без firstName , например.

0
добавлено

У меня была та же самая проблема. Для некоторого профиля объем "userinfo" не возвращает given_name и family_name. Пока я не нахожу, почему это так, я использую пустые строки для этих двух, когда никакие ценности не возвращены. Я не могу предположить, что Google позволяет нам, люди создают счета Google, не предоставляя некоторые ценности для имени и фамилии. Google API - детская коляска, медленная и запутывающая. Таким образом, я предположил бы, что это - проблема API.

0
добавлено