Авторизация через социальные сети на MODX Evo ✈ Evolution CMS
- Дополнения
- HybridAuth
Авторизация через социальные сети на MODX Evo ✈ Evolution CMS
Особенности:
- используется библиотека
HybridAuth
, которая реализует авторизацию через множество соцсетей (провайдеров) без посредников; - регистрация (в том числе с добавлением в группы) и авторизация пользователей;
- привязка нескольких соцсетей к одному пользователю;
- управление привязанными соцсетями из админки.
Установка
Скачивать здесь: EvoHybridAuth
После установки нужно зайти на страницу веб-пользователя в админке, чтобы создалась таблица. Затем переименовать файл config.sample
в config.php
в папке assets/plugins/hybridauth/config
и настроить в нем необходимые соцсети. По настройке придется гуглить, но что-то можно найти здесьТакже должен быть включен плагин userHelper
.
Классы для основных провайдеров находятся в папке assets/plugins/hybridauth/vendor/hybridauth/hybridauth/hybridauth/Hybrid/Providers/
и не требуют дополнительных действий. В случае дополнительных провайдеров из папки assets/plugins/hybridauth/vendor/hybridauth/hybridauth/additional-providers/
необходимо добавить в конфигурацию провайдера ключ wrapper. На примере Vkontakte:
"Vkontakte" => array( "enabled" => true, "keys" => array("id" => "", "secret" => ""), "wrapper" => array( 'class'=>'Hybrid_Providers_Vkontakte', 'path' => MODX_BASE_PATH.'assets/plugins/hybridauth/vendor/hybridauth/hybridauth/additional-providers/hybridauth-vkontakte/Providers/Vkontakte.php' ) )
Компонент состоит из плагина и сниппета. Cниппет выводит список доступных для использования соцсетей, а плагин обеспечивает взаимодействие с ними.
Параметры плагина
registerUsers
разрешает регистрацию новых пользователей. Если запрещено, то авторизованный пользователей должен привязать в своем профиле соцсети и входить потом через них
debug
включает режим отладки, сообщения пишутся как в лог MODX, так и в файл assets/cache/ha/error.log
rememberme, cookieName, cookieLifetime
параметры для запоминания пользователя после авторизации, описаны в документации FormLister
redirectUri
адрес страницы, на которую пользователя возвращают из соцсетей, если не заполнять, то будет использоваться главная страница сайта; этот адрес должен совпадать с тем, что указывается в настройках приложений соцсетей
loginPage
id страницы, на которую пользователь должен быть перенаправлен после авторизации; если не заполнено, то текущая страница
logoutPage
id страницы, на которую пользователь должен быть перенаправлен после выхода; если не заполнено, то текущая страница
groups
список групп, в которые нужно добавить пользователя после регистрации, в виде json-массива
userModel
класс для работы с пользователями, по умолчанию — modUsers
tabName
заголовок вкладки на странице веб-пользователя в админке
Параметры сниппета
langDir, lang, lexicon
настройка лексиконов, см. документацию FormLister
tpl
шаблон списка провайдеров, доступны плейсхолдеры [+providers+]
и [+error+]
; если значение пустое, то вернется массив с ключами providers и error
providerTpl
шаблон провайдера, доступны плейсхолдеры [+url+]
(ссылка для выполнения действия), [+classNames+]
(имена классов), [+title+] (название провайдера)
activeProviderTpl
шаблон подключенного провайдера, если не указывать, то используется значение providerTpl
errorTpl
шаблон сообщения об ошибке, доступен плейсхолдер [+error+]
registerCss
подключает файл assets/snippets/hybridauth/css/default.css