1. http://michael-bashkirov.ya.ru/

    12.08.2011

    0 ↑
    0 ↓
    Если зайти на http://opendid.yandex.ru будучи залогиненымпользователем, то можно увидеть примерно такую картину:

    ...
    Вы можете использовать OpenID-логины:
    http://openid.yandex.ru/your-username/
    http://your-username.ya.ru/

    На сайте нашего проекта используется аутентификация через Яндекс OpenID 2.0, то есть без требования к пользователям указывать их OpenID-логин. При этом в базе данных за время использования аутентификации через Яндекс появились как пользователи вида http://openid.yandex.ru/username/, так и пользователи вида http://username.ya.ru/. Логика выбора Яндексом того или иного наименования для меня остается загадкой, но проблем, конечно, не в этом.

    А вот в чем: если пользователь однажды зашел через Яндекс без прямого указания своего OpenID-логина, будет ли Яндекс во всех без исключения случаях возвращать один и тот же Identity? Или по-другому сформулирую вопрос: может ли возникнуть такая ситуация, что для одного и того же пользователя Яндекс сначала выдавал Identity вида http://openid.yandex.ru/username/, а потом стал выдавать Identity вида http://your-username.ya.ru/?
  2. Ivan Sagalaev

    12.08.2011

    0 ↑
    0 ↓

    Логика выбора Яндексом того или иного наименования для меня остается загадкой

    Она менялась со временем, по наблюдениям извне действительно трудно понять :-). Сейчас так:

    • всем новым пользователям при выборе идентификатора сервером выдаётся openid.yandex.ru/username
    • единожды выданный идентификатор фиксируется, поэтому у старых пользователей он такой, какой они получили когда-то при первом таком входе, и может быть в любом виде

    А вот в чем: если пользователь однажды зашел через Яндекс без прямого указания своего OpenID-логина, будет ли Яндекс во всех без исключения случаях возвращать один и тот же Identity? Или по-другому сформулирую вопрос: может ли возникнуть такая ситуация, что для одного и того же пользователя Яндекс сначала выдавал Identity вида http://openid.yandex.ru/username/, а потом стал выдавать Identity вида http://your-username.ya.ru/?

    Да, мы выдаём всегда один и тот же идентификатор.

    Есть довольно редкие случаи, когда накладываются всякие legacy-схемы, и пользователь получает другой идентификатор. В этих случаях мы выставляем нужный по запросу в суппорт. На моей памяти таких случаев было то ли два, то ли три.

  3. Есть довольно редкие случаи, когда накладываются всякие legacy-схемы, и пользователь получает другой идентификатор. В этих случаях мы выставляем нужный по запросу в суппорт. На моей памяти таких случаев было то ли два, то ли три.

    Что ж, теперь таких случаев три или четыре :). После нескольких часов ковыряний с моим аккаунтом Яндекса, мой идентификатор неожиданно сменился с http://michael-bashkirov.ya.ru/ на http://openid.yandex.ru/michael-bashkirov/ и сейчас по-прежнему выдается последний, тогда как до этого круглый год выдавался первый :). Возможно, хоть я и не уверен, это произошло после того, как я в диалоге выбора доверяемых данных решил изменить отдаваемый E-mail.

    Неприятно получается, если пользователь полагается на механизм входа через Яндекс OpenID, а потом хопа и не может зайти, потому что Identity сменился. На мой взгляд, это баг Яндекса как OpenID-сервера.

  4. Ivan Sagalaev

    13.08.2011

    0 ↑
    0 ↓

    Да, это баг. Причём, его не получилось починить хорошо для всех, поэтому пришлось выбрать из двух вариантов слома наименее массовый. Сочувствую, что вы попали именно в "несчастливый" вариант. Могу лишь уверить, что в дальнейшем таких вещей происходить не должно.

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