2011-07-23 42 views
1

如果我用我的雅虎帐户作为一个OpenID提供商它返回此网址我的身份:Openid中的片段URL - 这是什么意思?

https://me.yahoo.com/a/9dodtB5.udVP6zRSRfAxIzPO6XXVdbqlS4jp#85bb1 

我觉得奇怪的是哈希标签#后的片段。

在请求资源时,HTTP标准的这些片段不会传输到服务器。我知道访问它们的唯一方法是在使用JavaScript的客户端浏览器中。

那么它是如何成为Openid Identity的一部分呢?

所以,如果我让我的网站接受OpenID我得到我存储在数据库中的身份,并且如果用户想要登录/注册,我查询完全匹配。

我应该存储片段吗?

我认为这并没有什么坏处,因为到目前为止我见过的所有OpenID库都存储了标识AS-IS(带有片段)。

但这不是某种违规或标准?我不确定。

回答

0

我不知道的除了标准的OpenID 2.0,上面写着以下内容:

标识符回收

的OpenID标识符可以随着时间的推移被回收,和OpenID 2.0规定 说的OpenID提供商将URL片段附加到作为世代标识符的OpenID URL 的末尾。应该使用包含片段 (如果存在)的整个OpenID URL来标识用户。例如, 以下两个的OpenID是独一无二的,代表不同的用户: http://openid.example.com/username#aa http://openid.example.com/username#bb

所以它到底真的是有道理的,因为身份本身并没有真正改变。这意味着如果我请求openid,碎片会被剥离,并且我始终请求具有相同XRDS文档的相同资源。