Твой собственный OpenID

January 25, 2008, revised May 5, 2010 OpenID PHP phpMyID

Логотип OpenID

Система единого входа OpenID, разработанная создателем Живого Журнала Брэдом Фитцпатриком несколько лет назад, постепенно начала входить в моду. Список сайтов, поддерживающих OpenID-вход, растет – есть и плагин для OpenID-комментариев в WordPress.

Если у тебя есть сайт, то вполне логичным будет использование его имени в качестве OpenID-логина.

Не надо мне теории, дайте код!

Что такое OpenID?

Даю слово Википедии:

OpenID — это свободная децентрализованная система единого входа, которая позволяет использовать один логин и пароль на большом количестве сайтов. На сайтах поддерживающих OpenID, пользователям не приходится регистрироваться и помнить данные для каждого сайта. Вместо этого им достаточно быть зарегистрированными на сайте «провайдера идентификации» OpenID (предоставляющего идентификатор).Так как технология OpenID децентрализованная, то любой сайт может использовать программное обеспечение OpenID в качестве средства входа; OpenID решает проблему не полагаясь на централизованный сайт для подтверждения подлинности пользователя.
(текст из Википедии: OpenID)

Принцип работы OpenID

Преимущества OpenID

Установка собственного провайдера OpenID

Мой OpenID

Ладно, хватит теории!Провайдеров OpenID много, но если у тебя есть PHP-хостинг, можно установить свой собственный – ни от кого не зависеть, Пригодятся базовые знания PHP, на уровне «поменять значение строковой константы».

Будем использовать библиотеку phpMyId. Хотя библиотека – это громко сказано. phpMyId – это однопользовательский провайдер OpenID, написанный на PHP. Устанавливается еще проще, чем хваленый WordPress.

Что тебе понадобится?

Установка

  1. Распаковываем дистрибутив на сайт в отдельную папку, например, /openid
  2. Переименовываем MyId.config.php в index.php
  3. Открываем его. Наблюдаем два массива с конфигурацией. Нам строго необходимо указать
    • auth_username – твой логин (любой, не имеет значения)
    • auth_password – отдельным скриптом считаем хеш, например, так:
      <?php=md5('твой-логин-из-предыдущего-пункта:phpMyID:твой-пароль')?>

      получаем строку типа 37fa04faebe5249023ed1f6cc867329b, вот ее и вписываем в конфиг.

    • idp_url – это URL твоего провайдера – раскомментируй и впиши URL файла index.php, например, у меня – http://coldflame.in.ua/openid/index.php (вроде бы и не необходимая настройка, но без нее у меня не заработало)

    На это настройка провайдера закончена! Осталось привязать его к твоему доменному имени.

  4. Для этого редактируем index твоего домена (попросту, страницу, которая будет открываться при вводе твоего OpenID-логина в обозреватель)
  5. В <head> этой страницы добавляем две строчки. Важно – URL должен быть путем к файлу, т.е. заканчиваться на index.php, без этого у меня не заработало.
          <link rel="openid.server" href="URL твоего провайдера" />
          <link rel="openid.delegate" href="URL твоего провайдера" />
  6. Поздравляю, теперь можешь использовать свой домен как OpenID-логин!

Для желающих покопаться в настройках подробнее описано в README к библиотеке.

Проверяем

Проще всего проверить исправность своего OpenID OpenID Checkup – достаточно ввести туда свой логин (я ввожу http://coldflame.in.ua), и следовать инструкциям. Или оставь Open-ID комментарий на этот пост – пользователи ЖЖ могут сделать это без лишних хлопот. :)

Buy Me a Coffee at ko-fi.com