Понедельник, 28 Январь 2008 01:05

Интеграция OpenId на движке Joomla

Автор
Оцените материал
(0 голосов)
OpenId - это новый подход к аутентификации пользователей на сайте. Безусловно, попытка дать возможность любому анонимному пользователю возможность писать комментариии и иметь расширенный доступ к данным не всегда эффективна, вернее это эффективный способ замусорить блог.
С другой стороны, требование регистрироватся порой сильно раздражает. OpenId - это хорошее компромиссное решение.
Мои эксперименты с получением собственного OpenId'а прошли успешно и описаны в одноименной статье . Единственное, что в свое время, омрачило мой энтузиазм, так это ошибка редактирования профиля в myopenid.com . Эта новогодняя ошибка была внесена, по всей видимости, непосредственно в то самое время, когда я начал эксперименты и была в течении суток исправлена.
Все это привело к тому, что я протестировал три провайдера ОpenId:
  • livejournal.com
  • yandex.ru
  • myopenid.com
Остановился на последнем. Могу только сказать, что yandex не дает информации о eMail. Во всяком случае, во время отладки интеграции OpenId eMail адрес с yandex не вытягивался.
Теперь непосредственно об интеграции на сайт www.bushmelev.ru.

Моя конфигурация:

  • Система - FreeBSD
  • PHP Version 4.3.9
  • Joomla! 1.0.13Стабильная версия [ Sunglow ]
  • Компонент и модуль OpenId - J-OpenId v1.0.1
  • Библиотеки OpenId - PHP-openid-1.2.1 (в поставке дистрибутива компонента)


Все это после установки на локальном сервере долго и занудно не работало. Сначала было непонятно куда разархивировать библиотеки Auth и Servises. Выдавались различные ошибки.
Эксперименты проводил под Windows XP. Оказалось, что для win необходимо:

Если вы используете библиотеку под Windows, то вам, скорее всего, нужно установить переменную Auth_OpenID_RAND_SOURCE из файла CryptUtil.php в null.

Спасибо daeg за это инфо. Его статья на Хабре: "Интеграция OpenID в ваш проект ".
Явные ошибки пропали, тем не менее, при попытке залогиниться через OpenId выкидывало на главную страницу без следов пользователя, хотя в базе пользователь появился.
После долгих и нудных поисков были найдены ошибки в файле jopenid.php. В одном месте было обращение к таблице jos_user, без использования макро #__. Но больше всего пришлось повозиться с ошибкой, связанной с шифрованием пароля. В логин передавался уже зашифрованный пароль, а функция joomla loginне доработана и при явной передаче в нее username и password, когда последний ошибочен, получается полная ерунда.
Исправлять функцию login не стал, но jopenid.php немного покурочил. В архиве можно найти мою версию этого файла. Все исправления помечены.
На рабочем сайте были проинсталлированы модуль и компонент, служебные папки Auth и Servises разархивированы в корень сайта и после копирования исправленного файла jopenid.php cразу все заработало.
Да, и еще одно. В файле mod_openid_rp.php была ссылка на картинку, расположенную на livejournal.com, я скопировал к себе это изображение и заменил строчки:

<STYLE>INPUT.iconopenid {
      PADDING-LEFT: 18px; BACKGROUND: url('/images/openid-inputicon.gif') #fff no-repeat 0px 50% }
</STYLE>

В архиве лежат все три файла

  • jopenid.php
  • openid-inputicon.gif
  • mod_openid_rp.php

Про настройку параметров модуля, вообще ничего не скажу. Все стандартно, смотрите, что получилось самостоятельно на сайте.

Итак, в Миры Бушмелевых можно приходить со своим OpenId'ом - милости просим!

Прочитано 8992 раз Последнее изменение Понедельник, 28 Январь 2008 01:28
Другие материалы в этой категории: « Использование QR-кода Законы программизма от Ваще »
Авторизуйтесь, чтобы получить возможность оставлять комментарии