Как получить информацию о профиле пользователя OpenID?

После входа в SO мой ник появляется вверху.

Когда я настраиваю openid на своем сайте, я не получаю никакой информации профиля.

Я попытался реализовать OpenID, используя openid-селектор и Zend Framework

Параметры ответа я получаю:

openid.assoc_handle B2Jgsdf7jkDsdfUwWBGMHUshLmavymH...
openid.claimed_id   https://me.yahoo.com/MyYahooId#50a9f
openid.identity https://me.yahoo.com/MyYahooId
openid.mode id_res
openid.ns   http://specs.openid.net/auth/2.0
openid.ns.pape  http://specs.openid.net/extensions/pape/1.0
openid.op_endpoint  https://open.login.yahooapis.com/openid/op/auth
openid.pape.auth_level.nist 0
openid.pape.auth_level.ns.nist  http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63V1_0_2.pdf
openid.pape.auth_policies   http://schemas.openid.net/pape/policies/2007/06/none
openid.realm    http://mywebsite.com/
openid.response_nonce   2009-10-28T18:23:05Zyj0aF9sdfsdfCmoegeAiQ--
openid.return_to    http://mywebsite.com/
openid.sig  U9O4UpuPsdfdsfsdfBHbVLdjiSyo=
openid.signed   assoc_handle,claimed_id,identity,mode,ns,op_endpoint,response_nonce,return_to,signed,ns.pape,pape.auth_level.ns.nist,pape.auth_level.nist,pape.auth_policies

По какой причине я не получаю информацию о профиле, такую ​​как никнейм? Когда SO использует openid-selector, как он получает псевдоним?

1 ответ

Решение

Любая информация, кроме требуемого_идентификатора и URL-адреса конечной точки, должна быть получена с помощью расширений простой регистрации (SREG) или обмена атрибутами (AX) для OpenID.

Вы должны явно запросить их при запросе аутентификации.

Документацию Zend для потребителей по SREG можно найти здесь: http://framework.zend.com/manual/en/zend.openid.consumer.html

Обратите внимание, что эта информация не гарантируется, и поставщикам предоставлена ​​свобода принимать решение (с вводом или без ввода данных пользователем) отозвать любую запрошенную информацию или не поддерживать ее напрямую.

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