首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开放Id XRDS发现

开放Id XRDS发现
EN

Stack Overflow用户
提问于 2009-04-23 10:10:31
回答 3查看 1.3K关注 0票数 3

我正在使用Open,只是在我的站点(用PHP)上做一个类来交互/ auth。我知道还有其他一些库(比如RPX),但我想使用自己的库(它的好处是帮助更好地理解协议以及它是否适合我)。

我提出的问题与开放Id发现序列有关。基本上,我已经达到了使用XRDS从声明的标识(openid.claimed_id)获取本地标识(openid.claimed_id)的地步。

我的问题是,是否必须发出cURL请求才能获得XRDS位置( XRDS Location ),然后再发出另一个cURL请求才能获得实际的XRDS文档?

对于一个简单的请求,我只发出一个cURL请求并获得,但必须使用XRDS方法生成两个请求。只是看上去不对,其他人能告诉我一些信息吗。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-04-24 15:24:49

要想完整,是的,您的RP必须在用户提供的URL上获取,然后搜索XRDS文档引用,如果发现了另一个HTTP。请记住,XRDS可能托管在不同的服务器上,所以不要编写任何要求两个请求之间的连接相同的代码,因为它可能不是相同的连接。

如果在初始的HTTP请求中包含HTTP报头:

代码语言:javascript
复制
Accept: application/xrds+xml

然后,页面可能会立即响应XRDS文档,而不是必须解析XRDS链接的HTML文档。您将能够通过检查应用程序/xrds+xml的内容类型报头中的HTTP响应头来检测是否发生了这种情况。这是一个优化,所以RPs通常不必进行第二个HTTP调用--但您不能依赖它的发生。

票数 2
EN

Stack Overflow用户

发布于 2009-04-23 14:18:00

我能给您的最好的建议是尝试抽象您的HTTP请求,然后只进行两次HTTP请求的整个过程。

如果您想要使用持久连接来加快速度,可以将您的curl实例保持在周围,但这可能是您想要的,也可能不是您想要的。

我希望这能帮上忙,祝你好运。OpenID是我在WebDAV =之后遇到的最庞大和最复杂的web标准之一。)

埃弗特

票数 0
EN

Stack Overflow用户

发布于 2010-06-03 00:41:15

我知道我在这里的比赛迟到了,但我想你也应该去看看webfinger协议。它采用标准的"email as userid“模式,并允许您在那里进行查找以发现openid等。

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

https://stackoverflow.com/questions/781102

复制
相关文章

相似问题

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