Loginza, OpenID, WordPress.
- Июнь 29th, 2010
- Опубликовано в WordPress
- Павел Горлов
- Комментировать
Стало мне интересно: “А как можно организовать комментирование для тех кому не хочется регистрироваться?” Тут вариантов на самом деле два:
- разрешить оставлять анонимные комментарии с указанием имени пользователя, и какой-нибудь электронки
- организовать авторизацию через OpenID
Первый вариант проще, второй интереснее, реализовал оба.
Вариант номер раз.
Тут все очень просто – отключаем в настройках “Обсуждение” wordpress’а галочку ““. Отключаем и казалось бы все уже хорошо, но! Есть такой момент как СПАМ. Даже на моем мало посещаемом блоге это до 10 левых сообщений в день. Приятного мало. Для того чтобы меня не долбили всякой ерундой я поставил плагин с капчей.
CAPTCHA – (от англ. «Completely Automated Public Turing test to tell Computers and Humans Apart» — полностью автоматизированный публичный тест Тьюринга для различия компьютеров и людей). вики
Плагинов капча для WordPress существует огромное количество. Лично меня вполне устроил плагин SI Captcha. Вот все его настройки:


Так же он имеет дополнительные настройки оформления. Разработчик предусмотрел два варианта оформления капчи – описать свой css класс, скажем в общем style.css, или использовать предопределенные настройки, которые собственно редактируются прям в админке плагина. Я не стал заморачиваться, чуть поправил отступы и вполне доволен результатом:

Вариант номер два.
Тут все несколько сложнее. Я знал что есть некий унифицированный протокол для использования данных аккаунта одного сайта для авторизации на другом сайте. Что-то типа децентрализованной базы пользователей с которой можно работать c помощью определенных функций. Этот “протокол” называется OpenID. Сейчас он переживает уже свою вторую версию.
OpenID — это открытая децентрализованная система единого входа на сайты, порталы, блоги и форумы. Поддержка множеством сайтов технологии OpenID позволяет пользователю использовать единый логин для авторизации на любом из этих сайтов.
Сайты, поддерживающие её, часто помечаются логотипом системы, расположенным возле поле ввода пароля на странице входа.Существует несколько OpenID-провайдеров, которые предоставляют хостинг OpenID URLOpenID — это открытая децентрализованная система единого входа на сайты, порталы, блоги и форумы. Поддержка множеством сайтов технологии OpenID позволяет пользователю использовать единый логин для авторизации на любом из этих сайтов.Сайты, поддерживающие её, часто помечаются логотипом системы, расположенным возле поле ввода пароля на странице входа.Существует несколько OpenID-провайдеров, которые предоставляют хостинг OpenID URL.
Из всех имеющихся плагинов я нашел для себя один замечательный плагин, даже не то чтобы плагин, а целый ресурс – Loginza.ru. УРА! Это наше отечественное творение! Нашел сначала на хабре обсуждение одного очень интересного скрипта, потом уже обнаружил что с течением времени авторы превратили это в целый сервис способный быть OpenID 2.0 провайдером. Так же они предлагают разработчикам использовать их собственный API. На момент написания этого поста Loginza уже умеет авторизовывать через 14 провайдеров, среди которых такие гиганты как google.com, vkontakte.ru, mail.ru, yandex.ru. К сожалению есть проблемы с популярным LiveJournal. Тут разработчик на своем форуме дал такой ответ:
Интерфейс livejournal не дает возможности нам сделать это, так как если пользователь не авторизован на livejournal то на они просят ввести логин и пароль, при этом форма находится в правом верхнем углу (мелочи, но очень не удобно), далее после авторизации livejournal не делает переадресации обратно на сайт с которого она была запрошена, и это главная причина по которой пока livejournal нет в виджете.
Как только livejournal сделает свой OpenID более “дружественным”, мы сразу же добавим его в наш виджет.
Если я не прав, поправьте меня.
Жаль, ну да ладно, уже имеющихся вполне достаточно чтобы покрыть, ну наверное, 99% посетителей сайта.
Я эту систему использовал двумя способами – поставил плагин, от этого у меня появились панельки OpenID авторизации на форме написания комментария, и на форме входа:


Второй способ, это вживить код (как в примерах на сайте разработчика), ну например, в плагин Login-Box (который я уже давно немного модифицировал). В результате у меня получилось вот такое меню для входа:

p.s. “Ложка дегтя в бочке меда” – возникли проблемы с Internet Explorer версии 7 и 8, на других версиях не пробовал. Проблемы с java script. Описал свою проблему вот тут. Жду ответа. Авторизовываться через IE 7,8 не пробуйте – не получится.
UPD – 29/06/2010 – блин…. от yandex и mail получаю ошибки – “Catchable fatal error: Object of class WP_Error could not be converted to string in /var/www/pgorlov/data/www/pgorlov.ru/wp-includes/formatting.php on line 2772”
UPD – 30/06/2010 – после обновления плагина 1.0.8 на 1.0.9 все проблемы с авторизацией через yandex и mail исчезли. Все работает замечательно. Проблема с IE сейчас решается разработчиком.



























Привет от Google
Привет от ВКонтакте
Привет от mail.ru
Привет от yandex
ПРЕВЕД из работы….
Я сделал намного проще – у меня плагины типа badbehavior и их достаточно для отсеивания спама. И людям удобно, и мне.
Привет, Паха, почему-то сам OpenId отказывается работать, у меня есть постоянный акк на LaunchPad.net, но сдесь он не прошел, не всегда хочется светить почтовый ящик на сторонних сервисах типа Loginza )
Я когда тестил, то тоже нашел пару косяков. Почему-то не все учетки, основанные на OpenID отрабатывают правильно. Думал будут удобно, а все чаще и чаще натыкаюсь на отрицательные отзывы. Разработчик видимо решил забить на этот проект, т.к. обновлений давно нет. Гугль работает на 5+, еще всякие вконтакте, мейлы, яндексы. Вобщем самое распространенное.
Все же должен признать это много удобней стандартной регистрации ))
да, я откоментил через жужль)
Плагин Loginza задуман неплохо, но на моем компе почему-то не получается авторизоваться с его помощью. Выплывает окошко авторизации и что-то грузится, грузится, грузится… и не может никак загрузиться. Картина одинаковая как на вашем сайте, так и на моем (я его в свой блог тоже пробовал установить).
Может быть есть какие-то менее глючные аналоги?
А какой браузер? я точно знаю что под IE loginza работает глючно, вернее она не работает, все происходит именно так как вы и написали – что-то грузится, а внизу появляется сообщение об ошибке на странице, что-то с jquery там….
А я просто не могу добавить кнопки провайдеров.

Тыкаю по ним, а они не переходят в доступные. И не перетаскиваются.
Может это у меня глюк? Но в сафари, хроме, ие7 это не работает тоже.
Не сталкивались с таким?
Проверяю Фейсбук, с Вашего позволения. Но ведь ответить мне так, чтоб я получил уведомление об ответе, Вы мне не сможете?
А вот сам себе отвечаю, чтоб проверить.
Странно, что после авторизации из-под Яндекса мне говорят: “Вы авторизованы как loginza3JRbPGxCMXYXtHyvMLgcZG.”
Проверяю, придет ли сообщение об ответе на коммент, оставленный из-под Яндекса.
Проверяю, придет ли сообщение об ответе на коммент, оставленный из-под Яндекса.
Из-под Твиттера не получилось – при возвращении на эту страницу выдало ошибку:
Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/pgorlov/data/www/pgorlov.ru/wp-content/plugins/loginza/loginza.php on line 465
Warning: file_get_contents(http://loginza.ru/api/authinfo?token=555b29d7189a9bbf434f155240de505b) [function.file-get-contents]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/pgorlov/data/www/pgorlov.ru/wp-content/plugins/loginza/loginza.php on line 465
проверка связи
А как сделать, чтобы после авторизации пользователь обратно на комментарии переходил, а не в свой профиль?
Зашла с яшки, А почему моя аватарка не прикрепляется?
Скажите, пожалуйста, а нет ли подводных камней и уязвимостей в использовании плагина Логинза? он безопасен? сайт не смогу взломать с его помощью? и эта регистрация нужна только для комментариев? или для соавторства?
Привет дибилы.