我与公开识别工作,只是玩弄制作类交互/ AUTH公开识别码的我的网站上(在PHP)。我知道有一些其他的库(比如RPX),但我想用我自己的(它很好的保持有助于更好地了解协议和其是否为我的权利)。

我的问题涉及打开ID发现序列。基本上,我已经到了我期待在使用XRDS文档,以得到所要求的身份(openid.claimed_id)的本地身份(openid.identity)点。

我的问题是,我必须做出卷曲的请求,以获得XRDS位置(X-XRDS-位置),然后再拍卷曲请求,以获得实际XRDS文档??

这似乎像一个愚蠢的请求,我只是做一个卷曲的请求,并得到公开识别服务器,但必须进行两次使用XRDS智能方法。只是看起来不正确的,任何人都可以给我一些信息。

有帮助吗?

解决方案

要完整,是的,你的RP必须HTTP GET URL上的用户给你,然后寻找一个XRDS文档的参考,如发现有来自另做HTTP GET。请记住,在XRDS可以在不同的服务器上托管,所以不要编写了任何可能需要的连接是两个请求相同的,因为它可能不是相同的连接。

如果在初始HTTP GET请求您包括HTTP标头:

Accept: application/xrds+xml

然后页面可能与XRDS文档,而不是你要解析一个XRDS链接的HTML文档立即响应。您可以检测通过检查应用程序/ XRDS + XML HTTP响应头在其Content-Type头,这已经发生了。这是一个优化,这样的RP通常不不得不做出这样的第二HTTP GET调用 - 但你不能依赖它的发生。

其他提示

我可以给你最好的建议,就是尽量抽象的HTTP请求一点点,然后就经历做一个HTTP请求两次的整个过程。

您可以让您的卷曲实例周围,如果你想使用持久连接来加快速度,但可能会或可能不会要你想要的。

我希望这可以帮助,祝你好运.. OpenID是最庞大和错综复杂的网络标准之一,因为WebDAV的我遇到=)

埃弗特

我知道我迟到了这里的比赛,但我想你也应该检查出的所述的WebFinger协议。它采用标准的“电子邮件作为用户ID”的格局,让你从那里做一个查找来发现的OpenID等。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top