15.06.2009 23:01

  1. wiz

    0 ↑
    0 ↓
    Пытался прикрутить многосайтовость но так и не догнал как сообщать консюмеру что этот урл это просто сервер, а сам юзер по другому урлу. Пытался подсмотреть как у яндекса сделано, и спецификацию читал - добился только "no_identity_server: The provided URL doesn't declare its OpenID identity server." (проверял на жж)

    Может кто на пальцах объяснить, что когда надо возвращать?
  2. Пытался прикрутить многосайтовость но так и не догнал как сообщать консюмеру что этот урл это просто сервер, а сам юзер по другому урлу.

    Консумер узнаёт об этом не в момент первого сабмита формы, а позже. Сначала к консумеру приходит URL, и он про него ничего не знает, кроме того, как из него выдрать информацию об endpoint'е. Дальше он отсылает клиента на endpoint с этим URL'ом (про который всё ещё ничего не знает) и ждёт возвращения. А вот когда клиент уже возвращается, тогда сервер в возвратном редиректе помимо подтверждения, что клиент авторизован, может прислать параметр claimed_id, в котором как раз и будет персональный URL клиента.

  3. То есть, алгоритм на стороне консумера такой: при обработке подтверждения надо сначала искать claimed_id (а не identity_url), и запоминать его как openid. А вот если его нет (если это сервер версии 1.0), то тогда сваливаться на identity_url.

  4. wiz

    0 ↑
    0 ↓
    Добавил и delegate в шапку, и x-rds в хедеры по примеру яндекса.

    Единственное, что пришлось добавить "http://specs.openid.net/auth/2.0/identifier_select" в качестве LocalID для самого сервера (в шапку и rds), иначе консюмеры и сам сервер страшно тупят.
  5. Ой, а вчера тут был другой текст... А я только ответить собрался :-).

    Кстати, у нас в 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>
    
  6. wiz

    0 ↑
    0 ↓

    Угу, это я уже потом добавил серверу чтобы все были довольны. Чувствую себя шаманом племени с тростником в руках, призывающим самолёты (;

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.