我正在尝试使用 AOL openid,却收到“AOL 无法验证此网站”
谁能告诉我避免这个错误的步骤,我应该在这边做什么。
如果有一些示例代码,请分享 - 在此先感谢
问候,
纳文
George 谢谢你的回答,但是我在让它工作时遇到问题,我的 xrds 文件如下
<?php
header('Content-type: application/xrds+xml');
$xrdstext = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$xrdstext =$xrdstext . "<xrds:XRDS";
$xrdstext =$xrdstext ." xmlns:xrds=\"xri://$xrds\"";
$xrdstext =$xrdstext ." xmlns:openid=\"http://openid.net/xmlns/1.0\"";
$xrdstext =$xrdstext ." xmlns=\"xri://$xrd*($v*2.0)\">\n";
$xrdstext =$xrdstext ."<XRD>\n";
$xrdstext =$xrdstext ."<Service xmlns=\"xri://$xrd*($v*2.0)\">\n";
$xrdstext =$xrdstext ."<Type>http://specs.openid.net/auth/2.0/return_to</Type>\n";
$xrdstext =$xrdstext ."<URI>http://localhost:56709/myproject/socialoauth.aspx</URI>\n";
$xrdstext =$xrdstext ."</Service>\n";
$xrdstext =$xrdstext ."</XRD>\n";
$xrdstext =$xrdstext ."</xrds:XRDS>";
echo $xrdstext;
?>
我的请求地址是
我不确定哪里做错了
请帮助...
最佳答案
因此,此错误的原因是 AOL 无法验证依赖方 return_to URL(根据 OpenID 2 规范 [http://openid.net/specs/openid-authentication-2_0.html#rp_discovery]] 的第 13 节)。执行此步骤是为了保护用户免受指定领域与 return_to URL 不匹配的攻击。</p>
要消除此错误,您需要通过指定的领域字符串支持 XRDS 发现。根据屏幕截图,这仅意味着向在本地主机上运行的服务器添加支持。
基本上,对 http://localhost:56709 的 HTTP 请求和 application/xrds+xml 的 Accept HTTP header 应该返回 X-XRDS-Location 的响应 HTTP header ,其值指定 XRDS 文件的位置,或者它可以返回直接XRDS文件。
XRDS 文档应该看起来像这样......
<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS
xmlns:xrds="xri://$xrds"
xmlns:openid="http://openid.net/xmlns/1.0"
xmlns="xri://$xrd*($v*2.0)">
<XRD>
<Service xmlns="xri://$xrd*($v*2.0)">
<Type>http://specs.openid.net/auth/2.0/return_to</Type>
<URI>http://localhost:56709/return_to/url/path</URI>
</Service>
</XRD>
</xrds:XRDS>
注意:对本地主机的 HTTP 请求将失败,因为无法到达该站点。警告将持续到 XRDS 文档部署到可访问的站点。
关于oauth - AOL openid网站验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7529013/