ket*_*urn 17
sreg被写成可能可行的最简单的东西,并且可用的字段非常有限.但是,因为那包括nickname,email而且fullname,这通常是你所需要的.
属性交换更具可扩展性和特征性,但我怀疑在实践中,诸如update_url和存储请求之类的功能尚未广泛实现.
至于知道要请求的内容:理论上,在发现阶段可用的XRDS文档中记录了提供者支持的扩展,如规范的扩展部分所述.如果您正在使用python-openid(或者可能是OpenID Enabled中的其他库之一),您可以通过以下方式查询
auth_req = consumer.begin('http://example.com/joe')
from openid.extensions import sreg
if sreg.supportsSreg(auth_req.endpoint):
sreg_request = sreg.SRegRequest(required=['nickname','email'])
auth_req.addExtension(sreg_request)
else:
# maybe AX, maybe something else...
Run Code Online (Sandbox Code Playgroud)
不幸的是,OpenID标识符委派使得它非常不可靠.用户可能正在使用基于HTML的发现方法,该方法根本不公布扩展,可能具有不包含与提供者相同的扩展信息的XRDS,或者曾经准确但现在已经出现的XRDS约会
此外,即使您确实获得了宣传AX扩展的XRDS,据我所知,它并没有告诉您提供商支持哪些属性(即哪个AX架构).
最实用的方法可能是要求很多东西,如果你得到一些东西,你可以使用它.
| 归档时间: |
|
| 查看次数: |
2690 次 |
| 最近记录: |