首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenID简单注册(sreg)与属性交换(ax)

OpenID简单注册(sreg)与属性交换(ax)
EN

Stack Overflow用户
提问于 2010-03-11 11:57:17
回答 1查看 2.7K关注 0票数 11

OpenID sreg和ax扩展之间的关系是什么?依赖方如何知道请求哪一个,或者两者都请求?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-12 12:34:37

sreg是作为可能工作的最简单的东西编写的,并且可用字段的集合非常有限。但由于包括nicknameemailfullname,这通常就是您需要的全部内容。

属性交换的可扩展性和特性要强得多,尽管我怀疑像update_url和存储请求这样的特性在实践中还没有得到广泛的实现。

至于知道请求哪个扩展:理论上,提供者支持哪些扩展在发现阶段提供的XRDS文档中有记录,如规范的Extensions部分所述。如果您正在使用python-openid (或者可能是启用了OpenID的其他库之一),您可以通过下面这样的方式进行查询

代码语言:javascript
复制
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...

不幸的是,OpenID标识符委派使得这一点非常不可靠。用户可能正在使用基于HTML的发现方法,该方法根本不通告扩展,可能具有不包含与提供者相同的扩展信息的XRDS,或者具有曾经准确但现在已过时的XRDS。

此外,就我所知,即使您得到了一个宣传AX扩展的XRDS,它也不会告诉您提供程序支持哪些属性(即哪个AX模式)。

最实用的方法可能是请求很多东西,如果你拿回了一些东西,你就可以使用它。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2422433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档