如何获取OpenID用户个人资料信息?

时间:2009-10-28 18:30:59

标签: php zend-framework openid openid-selector

登录SO后,我的昵称显示在顶部。

当我在我的网站上设置openid时,我没有收到任何个人资料信息。

我尝试使用openid-selectorZend Framework

实施OpenID

我得到的响应参数:

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 个答案:

答案 0 :(得分:4)

必须通过OpenID的简单注册(SREG)或属性交换(AX)扩展来检索除claim_id和端点URL之外的任何信息。

在请求身份验证时,您必须明确请求它们。

Zend的消费者SREG文档可以在这里找到:http://framework.zend.com/manual/en/zend.openid.consumer.html#zend.openid.consumer.sreg

请注意,这些信息不受保证,并且提供商可以自由决定(有或没有用户输入)拒绝任何和所有请求的信息,或者不直接支持它们。