-
Пытался прикрутить многосайтовость но так и не догнал как сообщать консюмеру что этот урл это просто сервер, а сам юзер по другому урлу. Пытался подсмотреть как у яндекса сделано, и спецификацию читал - добился только "no_identity_server: The provided URL doesn't declare its OpenID identity server." (проверял на жж)
Может кто на пальцах объяснить, что когда надо возвращать? -
Пытался прикрутить многосайтовость но так и не догнал как сообщать консюмеру что этот урл это просто сервер, а сам юзер по другому урлу.
Консумер узнаёт об этом не в момент первого сабмита формы, а позже. Сначала к консумеру приходит URL, и он про него ничего не знает, кроме того, как из него выдрать информацию об endpoint'е. Дальше он отсылает клиента на endpoint с этим URL'ом (про который всё ещё ничего не знает) и ждёт возвращения. А вот когда клиент уже возвращается, тогда сервер в возвратном редиректе помимо подтверждения, что клиент авторизован, может прислать параметр claimed_id, в котором как раз и будет персональный URL клиента.
-
То есть, алгоритм на стороне консумера такой: при обработке подтверждения надо сначала искать claimed_id (а не identity_url), и запоминать его как openid. А вот если его нет (если это сервер версии 1.0), то тогда сваливаться на identity_url.
-
Добавил и delegate в шапку, и x-rds в хедеры по примеру яндекса.
Единственное, что пришлось добавить "http://specs.openid.net/auth/2.0/identifier_select" в качестве LocalID для самого сервера (в шапку и rds), иначе консюмеры и сам сервер страшно тупят. -
Ой, а вчера тут был другой текст... А я только ответить собрался :-).
Кстати, у нас в xrds'е нет LocalID, по идее он и не нужен там:
<?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 priority="0"> <Type>http://specs.openid.net/auth/2.0/server</Type> <URI>http://openid.yandex.ru/server/</URI> </Service> </XRD> </xrds:XRDS> -
Угу, это я уже потом добавил серверу чтобы все были довольны. Чувствую себя шаманом племени с тростником в руках, призывающим самолёты (;
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

