AOL openid проверка сайта
Я пытаюсь использовать AOL openid, орех получает "AOL не может подтвердить этот сайт"
Может кто-нибудь сказать мне шаги, чтобы избежать этой ошибки, что я должен надеть с моей стороны.
Если есть пример кода, пожалуйста, поделитесь им - заранее спасибо
С Уважением,
Navin
Джордж, спасибо за ваш ответ, однако у меня есть проблема в том, чтобы заставить его работать, мой файл 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;
?>
и мой запрос URL
https://api.screenname.aol.com/auth/openidServer?openid.claimed_id=http://openid.aol.com/navinleon&openid.identity=http://openid.aol.com/navinleon&openid.return_to=http://localhost:56709/myproject/socialoauth.aspx&openid.realm=http://mydomain.com/xrds/&openid.mode=checkid_setup&openid.assoc_handle=f457ae42e94c11e0811b002655277584&openid.ns=http://specs.openid.net/auth/2.0&openid.ns.alias3=http://openid.net/srv/ax/1.0&openid.alias3.if_available=alias5&openid.alias3.required=alias1,alias2,alias3,alias4,alias6,alias7&openid.alias3.mode=fetch_request&openid.alias3.type.alias1=http://axschema.org/namePerson/friendly&openid.alias3.count.alias1=1&openid.alias3.type.alias2=http://axschema.org/namePerson/first&openid.alias3.count.alias2=1&openid.alias3.type.alias3=http://axschema.org/namePerson/last&openid.alias3.count.alias3=1&openid.alias3.type.alias4=http://axschema.org/contact/country/home&openid.alias3.count.alias4=1&openid.alias3.type.alias5=http://axschema.org/pref/language&openid.alias3.count.alias5=1&openid.alias3.type.alias6=http://axschema.org/contact/email&openid.alias3.count.alias6=1&openid.alias3.type.alias7=http://axschema.org/birthDate&openid.alias3.count.alias7=1 .count.alias5 = 1 & openid.alias3.type.alias6 = HTTP: //axschema.org/contact/email&openid.alias3.count.alias6=1&openid.alias3.type.alias7=http: //axschema.org/birthDate&openid.alias3.count.alias7 = 1
я не уверен что делаю не так
пожалуйста помоги...
1 ответ
Поэтому причина этой ошибки заключается в том, что AOL не может проверить URL-адрес return_to для Rely Party (согласно разделу 13 спецификации OpenID 2 [ http://openid.net/specs/openid-authentication-2_0.html). Этот шаг выполняется для защиты пользователя от атаки, когда указанная область не соответствует URL-адресу return_to.
Чтобы избавиться от этой ошибки, вам необходимо поддерживать обнаружение XRDS через указанную строку области. Исходя из скриншота, это просто означает добавление поддержки на сервер, работающий на localhost.
По сути, HTTP-запрос к http://localhost:56709/ с HTTP-заголовком Accept приложения /xrds+xml должен возвращать либо HTTP-заголовок ответа X-XRDS-Location со значением, указывающим местоположение файла 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-запросы к localhost не будут выполняться, так как невозможно достичь этого сайта. Предупреждение будет действовать до тех пор, пока документ XRDS не будет развернут на доступном сайте.