Я заметил, что с недавнего времени мой сценарий «логин с Google» больше не работает правильно. После некоторой отладки кажется, что главная ценность openid_id
больше не возвращается.
Я правильно получаю access_token
id_token
iss
iat
exp
at_hash
aud
sub
azp
& email
,
openid_id
раньше была строка, такая как https://www.google.com/accounts/o8/id?id=AItOa....
Так я идентифицировал пользователей, и они были сохранены локально в моей базе данных.
Могу ли я получить openid_id
? Если так, то как?
Если openid_id
в старой строке больше не будет доступно, как мы можем преобразовать новые идентификационные токены в старые? Чтобы я мог сопоставить их, старые пользователи все еще могут войти в систему.
Я думаю, что вы пострадали от амортизационного молотка.
веб-приложения, которые используют устаревший OpenID 2.0 для входа в Google,
см. OpenID 2.0 (устарел). Для получения информации об использовании
устарела аутентификация OpenID 2.0 с Google Apps (размещено)
учетные записи, см. API OpenID для учетных записей Служб Google (устарело).
График миграции говорит
Преобразование идентификаторов OpenID 2.0 в идентификаторы OAuth 2.0 будет работать до 1 января 2017 года.
У меня такая же проблема с исчезнувшими openid_id. После «копания» в ответах API я заметил, что есть Эл. адрес параметр здесь. Тот же адрес электронной почты мы храним в базе данных, поэтому теперь мы можем связать существующие профили с новыми суб параметр на лету, и решить нашу проблему. По крайней мере, нет необходимости выяснять старый параметр openid_id.