OpendID в WordPress PHP 15.09.2008

openid_logo.png В этом посте я расскажу как:

  1. Создать свой аккаунт на любом из провайдеров идентификации (сервер который будет хранить регистрационные данные о Вас)
  2. Подключение OpenID к блогу на WordPress - пользователи смогут оставлять свои комментарии вводя только свой OpenID и текст сообщения, а все остальные поля (nick, email и т.д.) заполнит WordPress (если они были указаны при регистрации). Также пользователи смогут регистрироваться у Вас в блоге (если Вы разрешили), указав только свой OpendID (все остальное также заполнит WordPress)
  3. Настройка адреса блога как Вашего OpenID (а не провайдера идентификации)

Для начала, OpendID – это децентрализованная система идентификации. Идентификатор OpenID представляет собой адрес Вашего блога или ЖЖ. Единственное назначение идентификатора подтвердить то, что Вы являетесь собственником указанного адреса (URL).

Более подробно про OpendID можно узнать на Wikipedia или Популярно об OpenID. По приведенным ссылкам рассказаны история и терминология, приведен пример работы и некоторые альтернативные системы идентификации пользователя.

Создать свой аккаунт можно на любом серверов из этого списка. Также у Вас уже есть OpenID, если имеете логин на Яндексе - http://openid.yandex.ru/username или username.ya.ru. Я сначала выбрал myID, из-за получаемого короткого адреса – proft.myid.net. Но сервер меня сначала встретил закарлючками которых я не знаю (недружелюбно с его стороны :) ), на английский можно переключить справа внизу. После регистрации я не нашел как добавить аватор к аккаунту, изменить email и адрес блога.

Следующим, что я попробовал – myopenid.com, встретил он меня на “великом и могучем” :) , что уже приятно. После регистрации создаем Персону – это запись о пользователе, которая содержит: аватор, ник, email, адрес блога и т.д. Что очень удобно, можно создать несколько Персон и для каждой определить свои параметры, а при регистрации на сайтах выбирать нужную Персону.

Теперь перейдем к настройке WordPress. Скачаем плагин WP-OpenID. Распакуем содержимое архива в папку /wp-content/plugins/ и активируем плагин.

Для корректной работы плагина на хостинге должна быть поддержка: Curl, SSL, GMP.

Я перевел плагин на русский язык. Локализацию берем тут: wp-openid222-rus.zip

В архиве два файла: один с обычной локализацией плагинов WordPress, а второй JavaScript, в котором переведен текст формы добавления комментариев (одно слово :) ). Содержимое архива распаковываем в папку /wp-content/plugins/openid/, необходимые файлы заменяем.

В админке WordPress’a переходим в Пользователи → Ваш идентификационный URL и в поле Добавить идентификатор вводим полученный ранее идентификатор, нажимаем Добавить. Остальные настройки (Настройки → WP-OpenID) оставляем по-умолчанию.

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

Нам осталось только сделать адрес блога – идентификатором OpenID. Для этого в заголовок используемой темы (файл header.php) надо добавить:

< link rel="openid.server" href="http://www.myopenid.com/server" / >
< link rel="openid.delegate" href="http://YOUR_NICK.myopenid.com/" / >
< link rel="openid2.local_id" href="http://YOUR_NICK.myopenid.com" / >
< link rel="openid2.provider" href="http://www.myopenid.com/server" / >
< meta http-equiv="X-XRDS-Location" content="http://www.myopenid.com/xrds?username=YOUR_NICK.myopenid.com" / >

где YOUR_NICK заменяем на полученное ранее имя. Все эти записи просто перенаправляют проверку идентификатора на сервер myopenid.com.

У этого метода есть один побочный эффект – эти строки будут отображаться на всех страницах блога, а нам достаточно только на главной. Для этого, я написал небольшой плагин, который делает это все (добавляет необходимые заголовки на главной странице) за нас: wp-myopenidheaders.zip

Скачиваем файл, распаковываем в папку с плагинами. В файле меняем значение переменной :

$YOUR_NICK = "proft";

на Ваш ник и активируем плагин.

Вуаля! Мы получили блог восприимчивый к OpenID идентификаторам пользователей и адрес блога – OpenID идентификатор.

Цитата
Избегай дел, зависящих от других; стремись лишь к тому, что зависит от тебя самого.
Восточная мудрость
Категории
Архив