Как определить имя пользователя OpenID, если в идентификаторе нет имени пользователя? - PullRequest
4 голосов
/ 03 февраля 2011

Я пытаюсь внедрить openID на моем сайте и читаю как Plaxo и вопросы по SO.В настоящее время я могу аутентифицировать своих пользователей, используя библиотеки.Но я заметил, что некоторые провайдеры, такие как

Я пытаюсь внедрить систему, аналогичнуюPlaxo, где у меня будут отношения многие-к-одному.Но как отличить пользователей, использующих URL-адреса openID, как указано выше?Я вижу даже ТАК иметь Google и профиль Google отдельно.Итак, как они идентифицируют пользователя в случае, когда пользователь не предоставляет свое имя пользователя или я должен сказать уникальный openID?

Ответы [ 2 ]

3 голосов
/ 05 февраля 2011

OpenID не предназначен для предоставления имени пользователя в провайдере. Вам предоставляется проверенный URL, который служит их идентификатором, но этот URL должен рассматриваться как непрозрачная строка.

Если вам это нужно, вам нужно вручную запросить пользователя или использовать обмен атрибутами (кстати, ни один из них не является безопасным).

1 голос
/ 05 февраля 2011

Когда вы получите ответ openid, появится параметр "openid.identity", который уникален для каждой учетной записи.Это очень длинная полуслучайная строка, поэтому она бесполезна для отображения:

https://www.google.com/accounts/o8/id?id=AItOawnlHWwIas84v37...

Вы можете попытаться сгенерировать симпатичные отображаемые базы имен пользователей в поле «псевдоним» или локальной части адреса электронной почты., если эти атрибуты предоставлены.И как последнюю возможность спросите пользователя.

...