Как Google генерирует свои токены OpenID said_id?

Я использую django_openid_auth модуль и настроить его на автоматическое создание новых учетных записей пользователей для новых OpenID. Это делает процесс регистрации действительно тривиальным, но я немного обеспокоен тем, что из-за способа, которым Google генерирует свои токены OpenID, он может случайно создать новую учетную запись для существующего пользователя, создавая впечатление, что данные в его оригинале аккаунт был потерян.

Насколько я могу судить, Google будет генерировать разные заявленные токены идентификаторов для разных доменных имен. То есть www.site.com и site.com создадут два разных токена и, следовательно, две учетные записи в моей системе. Я исправил это, перенаправив www.site.com на site.com.

Есть ли другие ошибки, о которых мне нужно знать? И кто-нибудь может указать мне некоторые подробности о том, что Google использует для генерации идентификатора?

2 ответа

Решение

Из документов:

openid.realm

Аутентифицированная область. Определяет домен, которому конечного пользователя предлагается доверять. (Пример: "http://*.myexamplesite.com") Это значение должно соответствовать домену, определенному в openid.return_to. Если этот параметр не определен, Google будет использовать URL, указанный в openid.return_to,

Значение области используется на странице входа в систему Google Federated Login для идентификации запрашивающего сайта для пользователя. Он также используется для определения значения постоянного идентификатора пользователя, возвращаемого Google.

У Stackru были одинаковые проблемы с разными хеш-токенами OpenID. Они подробно описывают проблемы и возможное решение (профили Google) в блоге Stackru.

http://blog.stackru.com/2009/11/google-offers-named-openids/

Другие вопросы по тегам