Почему делает идентификатор изменения реализации OpenID Google?

Я пытаюсь реализовать вход в систему OpenId для веб-приложения. Каждый раз, когда новый пользователь, который регистрирует на пути OpenId, я создаю нового пользователя на sustem, и среди данных, я храню их, открыл URL, так, чтобы в следующий раз они вошли в систему с тем пользователем.

Я тестирую это со своим Gmail OpenID, и проблема состоит в том, что каждый раз я делаю это, Google отправляет, другое открыло URL, то есть, https://www.google.com/accounts/o8/id? id=SomethingThatChangesFromTimeToTime

Конечно, я затем не в состоянии сказать, является ли это или не новый пользователь. Я немного озадачен: открытый идентификатор не должен всегда оставаться тем же?

16
задан John Topley 21 April 2010 в 16:29
поделиться

1 ответ

Идентификатор OpenID Google представляет собой более или менее хешированное представление нескольких данных, включая хост, с которого пришел запрос (точнее, параметр openid.realm , отправленный поставщику). Так что, если ваш хост время от времени меняется (например, порт и IP-адрес), то ID тоже будет время от времени меняться. StackOverflow также использует обходной путь для этой проблемы. Проверьте эти сообщения:

Вот выдержка из часто задаваемых вопросов из Google:

Q: В спецификации OpenID указано, что openid.realm является необязательным, и если он не указан, Google должен использовать вместо него URL openid.return_to . Будет ли это работать?

A: Это будет работать в том смысле, что протокол завершится успешно. Но если ваш URL return_to выглядит примерно так: www.example.com/authenticate?style=openid-federated_login , вы просите нас побудить пользователей одобрить и доверять определенному адресу в вашем сайт, который не удобен для пользователей. Кроме того, если вы опустите параметр openid.realm , вы никогда не сможете изменить свой URL return_to : это также неявно изменит область и идентификаторы URL пользователей вашей учетной записи Google. .

19
ответ дан 30 November 2019 в 22:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: