2017-01-11 7 views
0

Я заметил, что с недавнего времени мой скрипт «login with Google» работает некорректно. После некоторой отладки кажется, что основное значение openid_id больше не возвращается.Проблема с oauth2 Google, отсутствует openid_id

Я правильно получать access_tokenid_tokenissiatexpat_hashaudsubazp & email.

openid_id раньше строки, например, https://www.google.com/accounts/o8/id?id=AItOa....

Это, как я идентифицировал пользователей, и их хранятся локально в моей базе данных.

Могу ли я получить openid_id? Если да, то как?

Если openid_id в старой строке больше не будет доступен, как мы можем преобразовать новые идентификационные знаки в старые? Так что я могу их сопоставить, поэтому старые пользователи могут войти в систему.

+0

wild guess Извлечь подполе из ответа на токен-запрос. Это идентификатор OpenID Connect https://developers.google.com/identity/protocols/OpenID2Migration – DaImTo

+0

Да, в подполе я не могу найти никаких проблем. Но поскольку значение openid_id теперь отсутствует для меня, я не знаю, кому сопоставить какую учетную запись. –

+1

До сих пор я до сих пор не вижу способа получить значение openid_id для пользователей после 1 января 2017 года. Я беспокоюсь за свою исключающую базу данных пользователей, которая содержит только значения openid_id, чтобы проверить, кто есть кто. –

ответ

0

Я думаю, что вас ударил молотком.

веб-приложения, использующие устаревший OpenID 2.0 для входа в Google, см. OpenID 2.0 (устаревший). Для получения информации об использовании устаревшей аутентификации OpenID 2.0 с учетными записями Google Apps (размещенных) см. API OpenID для учетных записей Google Apps (устаревший).

Migration timetable говорит

отображение идентификаторов OpenID 2.0 для OAuth идентификаторы 2.0 будет продолжать работать до 1 января 2017.

Решение: Migrating from OpenID 2.0 to OpenID Connect

+0

Да точно. Теперь я пытаюсь сопоставить старые данные openid_id с новыми данными «sub». Но поскольку «openid_id» больше не возвращается мне, для меня невозможно связать правильные учетные записи. Как я могу заставить Google снова вернуть значения 'openid_id'? –

+0

Вы не можете отключить эту систему в 2015 году, у вас есть два года, чтобы исправить данные в вашей базе данных, чтобы отобразить их. Теперь его нет. – DaImTo

+0

На странице миграции указано: Совет. Если вы перезаписываете идентификатор OpenID 2.0 (openid_id) пользователя и должны его снова найти, вы можете повторить процесс включения параметра openid.realm в запрос аутентификации и сопоставление возвращаемого openid_id с новый идентификатор. –

0

У меня то же самое проблема с исчезновением openid_id. После «копания» в ответах API я заметил, что здесь есть адрес электронной почты. Тот же адрес электронной почты, который мы храним в базе данных, теперь мы можем связать существующие профили с новым параметром sub на лету и решить нашу проблему. По крайней мере, нет необходимости искать старый параметр openid_id.