// codeart.ru / Идеи / На defaceit сделана авторизация через OpenId (Yandex) Форум

На defaceit сделана авторизация через OpenId (Yandex) rss подписка

Автор: Evgeny Sergeev

Потихоньку продолжаю работу над своей идей - defaceit. Очередным шагом стала реализация авторизации через OpenId. Пока используется только один источник для авторизации - Yandex. В будущем, возможно, прикручу и Google, но пока особой надобности в этом я не вижу. Далее немного о том, что сделано, что планируется сделать и какие проблемы возникли.

Сделано пока немного, выполняется стандартная регистрация, предусмотренная технологией OpenId, затем на базе данных, полученных от Yandex, создается обычная сессия, где в качестве “user id” используется параметр “display identifier“. Фактически used id используется для идентификации пользователя и определения его полномочий. На многих сайтах делается расширенный профиль пользователя, куда собирается дополнительная информация, но на defaceit ничего подобного я делать не планирую. По крайней мере пока.

В процессе тестирования на боевой системе возникла одна странная проблема, которая не проявлялась на домашнем полигоне - периодически после прохождения авторизации на yandex и возврате на мой сайт выдается сообщение о том, что в процессе регистрации произошла ошибка. Смотрю в лог и вижу следующее сообщение:

Error attempting to use stored discovery information: OpenID::TypeURIMismatch

При этом, все данные от Yandex передаются корректно, и сессия может быть создана успешно. В ближайшее время планирую разобраться с этим вопросом детально. Вообще, с OpenId я знаком поверхностно и, наверное, настало время познакомиться поближе.

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

Leave a Reply

« Событие onKeyPress не работает на iPad и iPhone Про обновление прошивки на iPad »