12.05.2009 22:01

  1. Добрый день.

    При реализации openid логина столкнулись с проблемой, помогите, пожалуйста, понять в чем ошибка.

    Предусловия:

    • python-openid 2.2.4, django-openid
    • логин на яндексе с большими буквами, например, мой JunkDeArc
    • активированная страница на Я.ru

    При запросе openid.yandex.ru без указания логина сервер возвращает:

    claimed_id: JunkDeArc.ya.ru
    identity: JunkDeArc.ya.ru
    

    При запросе на junkdearc.ya.ru сервер возвращает:

    claimed_id: junkdearc.ya.ru
    identity: junkdearc.ya.ru
    

    При входе пользователя без указания логина происходит следующее:

    1. Запрос на openid.yandex.ru
    2. Ответ с JunkDeArc.ya.ru
    3. Запрос на JunkDeArc.ya.ru, при этом URL нормализуется до http://junkdearc.ya.ru
    4. Ответ с junkdearc.ya.ru
    5. python-openid находит несоответствие между JunkDeArc.ya.ru и junkdearc.ya.ru и выдает ошибку

    Где в этой ситуации ошибка? python-openid/yandex/что-то еще?

    Всем заранее спасибо.

  2. На этом форуме openid.yandex.ru, думаю, не работает по той же причине.

  3. Интересно... Ошибка действительно есть в том, что при запросе без логина мы сами советуем "JunkDeArc.ya.ru", которого не может существовать, потому что, как вы заметили, Я.ру нормализует это к маленьким буквам. Думаю, это мы поправим.

    В итоге, если я ничего не путаю (не на работе сейчас, не могу проверить), вы сможете пользоваться такими OpenID, указывая их явно:

    А второй также будет советоваться при логине без явного указания.

  4. Да, я могу пользоваться явными openid, и это работает.

    Но мы делаем openid-login и очень хочется чтобы пользователь только выбрал Google/Yandex и нажал кнопку без ввода логина.

    Спасибо, за ответ, с нетерпением жду исправления сервиса.

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