Авторизация по OpenID в Drupal 5.x

Для авторизации пользователей по OpenID я использовал компонент OpenID для Drupal 5.x. Компонент находится в стадии разработки, но, видимо, дорабатываться больше не будет, так как его автор сконцентрировал усилия на реализации OpenID в Drupal 6.x, в котором этот функционал будет работать "из коробки".

Но, как выяснилось, в модуле есть один существенный недостаток. Дело в том, что не все OpenID-провайдеры предоставляют email пользователя. А он нужен при создании профиля в Drupal. Соответственно, при попытке авторизоваться по LiveJournal-OpenID (который не предоставляет email пользователя), возникала ошибка "не введен адрес email".

Для решения этой проблемы я модифицировал модуль. Теперь он программно заполняет email пользователя для аккаунтов на LiveJournal. Тем более, что все пользователи ЖЖ имеют емылы вида user_name@livejournal.com. Вот эти емылы и заносятся в профиль при первой авторизации. Это работает и это корректно.

Во всем остальном модуль вполне удобен. Каждый уже зарегистрированный пользователь может указать в своем профиле OpenID Identities, чтобы тоже авторизовываться по OpenID.

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

Прикрепленный файлРазмер
openid-5.x-1.x-dev-solarwind-fixed-lj.zip18.17 КБ

Комментарии

openID for life! =)

wisebird аватар

openID for life! =)

Это точно. :-)

SolarWind аватар

Это точно. :-)

Re: Авторизация по OpenID в Drupal 5.x

oleg-b аватар

Поставил ваш плагин для openid авторизации, но не работает хоть убей. Пытаешься логиниться по ЖЖ openid, все ок переходишь на страницу ЖЖ говоришь да мол разрешить, потом посылает обратно на мой сайт, но на моем сайте пользователь не залогинен. Может быть у вас есть идеи куда копать?

Re: Авторизация по OpenID в Drupal 5.x

oleg-b аватар

Разобрался сам, оказалось на сайте должны быть включены clean urls, без этого никак

Re: Авторизация по OpenID в Drupal 5.x

Маленький гигант большого маркетинга аватар

Тем более, что все пользователи ЖЖ имеют емылы вида user_name@livejournal.com

Нет, не все, только те, у которых платные аккаунты (paid members) (я тоже интересовался этим вопросом)

Re: Авторизация по OpenID в Drupal 5.x

SolarWind аватар

Ну значит так. Просто у меня платный аккаунт, поэтому я думал, что у всех так. ;-) Спасибо за уточнение.

reply

Tyler20Odessa аватар

You could buy genuine custom sociology essays and skillful essay writerwill be cheerful to service you, contact their essay writing service and derive pleasure from writing process.

answer

AMALIA22Mcleod аватар

Buy term papers from trustable company and obtain custom essay service. Check this link and all your worries will disappear.

Re: Авторизация по OpenID в Drupal 5.x

gasloff аватар

При работе вашей версии плугина вылезает вот такой косяк. После прохождения аутентификации выскакивает сообщение "страница не найдена". Но пользователь создается и дальше все нормально работает.
На вашем сайте же все вроде работает правильно. В чем бага? И кстати в том адресе, который "не найден" есть глюк с экранированием слешей. Вот тут можно этот баг увидеть: http://www.ustav.info/community

Re: Авторизация по OpenID в Drupal 5.x

SolarWind аватар

По ссылке у меня просто "404 not found".

А вообще да, странно. У меня действительно все работает нормально. А какой хостинг? Может это из-за каких-то специфических настроек на хостинге? Хотя у одного моего товарища тоже какие-то странные глюки были с openid, хотя он хостится тоже на мастерхосте, как и я... Как вариант, попробуйте поставить плагин на чистую инсталляцию друпала и проверить. Есть подозрение, что он с чем-то там может конфликтовать.

Re: Авторизация по OpenID в Drupal 5.x

gasloff аватар

Как показал эксперимент такой глюк наблюдается если Друпал стоит в поддиректории. В корне все нормально работает.

Re: Авторизация по OpenID в Drupal 5.x

SolarWind аватар

Понятно. Спасибо, буду знать, что такое бывает.

Re: Авторизация по OpenID в Drupal 5.x

gasloff аватар

Чуть поторопился с выводами. Оказалось это конфликт с Капчей :)

Кстати вопрос, на Друпал.орг уже лежат новые версии модуля:
5.x-1.0 (2007-окт-14) и 5.x-1.x-dev (2007-окт-15)

Обновления вашей версии в планах нету? ;)

Re: Авторизация по OpenID в Drupal 5.x

SolarWind аватар

Ну вообще говоря, не планировал. По уму, надо было, конечно, засабмитить мои изменения в основную ветку. А так получается, что мне надо ставить новые версии и вносить каждый раз свои изменения. Как-то времени на это нет... :-(

В принципе, в грядущей шестой версии друпала OpenID будет работать из коробки. Там его, кстати, делает как раз автор текущего модуля для пятерки. Поэтому как-то особо развивать и поддерживать текущий модуль я не вижу большого смысла. Выйдет релиз шестерки, посмотрим, что там да как. :-)

Re: Авторизация по OpenID в Drupal 5.x

ProRunner аватар

А можно такой же, но (с перламутровыми пуговицами) под шестую версию? Там, похоже, модуль переработали, и теперь есть две проблемы: он не фильтрует http и слеши, возвращаемые, например, ЖЖ, и так же требует e-mail. Первую проблему решает патч, который кто-то выложил в обсуждении этого баг-репорта. Вторая проблема осталось, и похоже, исправлена не будет, так как не вписывается в идеологию о ролях зарегистрированных пользователей.

Буду благодарен, если сможете модифицировать ваш патч, и прикрутить к патченной (от первой ошибки) версии для шестого друпала.

А вообще было бы ещё хорошо дать возможность админу выбрать — автогенерировать e-mail или попросить ввести его (правда, не в таком ужасном диалоге, как сейчас, а как, например, на вебпланете: «Для продолжения, введите пожалуйста ваш email:».

Или может, кто с drupal.ru возмётся?

Re: Авторизация по OpenID в Drupal 5.x

ProRunner аватар

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

Пробовал вставлять код до и после
$form = drupal_retrieve_form('user_register', $form_state);

Вернее, модуль продолжает работать, но так же, как и раньше — выдаёт диалог, где нужно ввести пароль.

Re: Авторизация по OpenID в Drupal 5.x

Гость аватар

То есть e-mail, а не пароль

Re: Авторизация по OpenID в Drupal 5.x

SolarWind аватар

В принципе, у меня такое в планах есть. Но я с шестеркой еще не работал вообще. Там, по идее, не должно быть сложно. Надо только поставить шестой друпал и поковырять. А вот с этим проблема - надо выделить время для этого. ;-)

Re: Авторизация по OpenID в Drupal 5.x

altimho аватар

Для шестерки решение оказалось до безобразия простым (не знаю, может быть в пятой версии было так же — копать не довелось). Я на эту тему пост написал. Вот основное:

«…изменяем часть строки из openid.module:
$form_state['values']['mail'] = (!empty($response['openid.sreg.email'])) ? $response['openid.sreg.email'] : ''; (версия после применения патча)
или $form_state['values']['mail'] = (empty($response['openid.sreg.email'])) ? '' : $response['openid.sreg.email']; (версия до применения патча)
меняем на
$form_state['values']['mail'] = (!empty($response['openid.sreg.email'])) ? $response['openid.sreg.email'] : $form_state['values']['name'].'@nomail';>
Теперь, если сервер не прислал e-mail пользователя, то поле будет заполнено адресом вида "логин_пользователя@nomail". »

К стыду своему патчи делать не умею, поэтому на пальцах. :)

Re: Авторизация по OpenID в Drupal 5.x

SolarWind аватар

Да, для пятерки решение примерно такое же. Только в случае конкретно livejournal я добавляю livejournal.com, а не nomail, что соответствует реальному емылу пользователя livejournal. А за решение для шестерки спасибо, это пригодится.

Ответить на комментарий | SolarWind Gate. Заметки гика

Exploring The Benefits of Completing Surveys For Money аватар

They are overlooked and discriminated because of their age.
With the economy in the recent state, employment is becoming
vey difficult to find.

Re: Авторизация по OpenID в Drupal 5.x

Золотой аватар

Модуль openid обновился 31.01.2008. Никто не в курсе решена ли там данная проблема? А то не знаю, что у себя ставить ...

Re: Авторизация по OpenID в Drupal 5.x

Гость2121 аватар

у меня выдет ошибку Invalid CAPTCHA token.
Как поправить?
Я даже картинки отключал, те что от роботов.. не помогло :(

Re: Авторизация по OpenID в Drupal 5.x

Гость12122 аватар

в общем расклад такой. в модуле openid есть такая строка:
$form = drupal_retrieve_form('user_register');
это openid_authentication. соответственно, подтягивается форма регистрации уже с каптчей и потом в нее заполняются поля. надо как-то исключить оттуда каптчу. как именно - это надо еще думать...
...
а есть мысль другая.
в самом капчет, вписать ограничения, можно сделать капчет на все страницы, но если обращение через openid он не дается?
...
можно. к примеру, завести в модуле каптчи переменную (флажок), которую устанавливать в true из модуля опенид. и если он true, то каптчу не активировать. в принципе, несложно.

Что скажешь?

я вот так регил.

галочки поставил
administer CAPTCHA settings
skip CAPTCHA

на anonymous user

блин. защита картинка тогда вообще снимается а вот если зайти с openid он тогда при занесении трубует ответить на картинки, наоборот!
т.е. сейчас, если ты неизвестный коды не ставишь, а если с OpenIDa - то требует кодов всюду!

еще есть мысль.
1. у народа под разными ролями в сайте. реально для opeid-ов сделать свою роль, и чтобы при входе он им давал свое, тогда все предыдущие не трогаем, и новая получает свой вход и свои правила!

Pingback

Установка OpenID-сервера в Drupal | SolarWind Gate. Заметки  аватар

[...] предыдущем посте я писал про модуль OpenID для Drupal. Оказалось, что этот [...]

Re: Авторизация по OpenID в Drupal 5.x

LiC аватар

ни один из вариантов не помог (((
(друпал - 6.10)

Re: Авторизация по OpenID в Drupal 5.x

LiC аватар

(предыдущий пост - мой же)
кстати, на Ваш сайт тоже зайти так и не смог.
на все варианты ввода жж-шного аккаунта выдаёт:
"Unable authenticate. OpenID Discovery failed."

Re: Авторизация по OpenID в Drupal 5.x

Александр аватар

Спасибо за статью. Очень помогла...

reply this post

custom writing аватар

Lately, students have no time to create writing tasks, they can visit the home page, and purchase professional essays. Applying to this top-level custom writing firm sophomores will receive professional writing online.

morpolog90

большие попки фото аватар

полностью поддерживаю, такие же мысли были.

morpolog90

большие попки фото аватар

полностью поддерживаю, такие же мысли были.

markand333

samarkand.moymir.uz аватар

Спасибо. Прочитал с интересом. Блог в избранное занес

markand333

samarkand.moymir.uz аватар

Спасибо. Прочитал с интересом. Блог в избранное занес

teksteks1

строительство коттеджей аватар

Полностью согласна!

asdfwe33

временная регистрация в Московской области аватар

Спасибо, хорошая статья. Подписался.

dokpor908

временная регистрация в Москве граждан России аватар

Восхитительно

utta24ti

ремонт ванной аватар

Даа… Достаточно спорно, поспорил бы с автором…

dverret790

металлические двери аватар

Да, есть над чем задуматься. Спасибо!

vrem300

регистрация граждан РФ аватар

Давно искала эту информацию, спасибо.

francebol

francebk.com аватар

Даже и не докопаешься.

sdfsdfsd12

гражданство аватар

Распечатываю… на стенку в самое видное место!!!

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу. Если у вас есть аккаунт в Gravatar, он будет использован для показа вашей аватарки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.