Как 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/