HybridAuth

Скачать HybridAuth в магазине дополнений →
03 мая 2019, 07:00

HybridAuth

Компонент для авторизации через социальные и другие сервисы.

Основное преимущество - работа с сервисами без посредников и возможность привязки нескольких сервисов к одной учетной записи MODX.

Сниппет выводит форму для авторизации на сайте.

Параметры

Название По умолчанию Описание
&activeProviderTpl tpl.HybridAuth.provider.active Чанк для вывода иконки привязанного сервиса.
&addContexts Дополнительные контексты, через запятую. Например, &addContexts=`web,ru,en`
&groups Список групп для регистрации пользователя, через запятую. Можно указывать роль юзера в группе через двоеточие. Например, &groups=`Users:1` добавит юзера в группу "Users" с ролью "member".
&loginContext current context Основной контекст для авторизации. По умолчанию - текущий.
&loginResourceId 0 Идентификатор ресурса, на который отправлять юзера после авторизации. По умолчанию, это 0 - обновляет текущую страницу.
&loginTpl tpl.HybridAuth.login Этот чанк будет показан анонимному пользователю, то есть любому гостю.
&logoutResourceId 0 Идентификатор ресурса, на который отправлять юзера после завершения сессии. По умолчанию, это 0 - обновляет текущую страницу.
&logoutTpl tpl.HybridAuth.logout Этот чанк будет показан авторизованному пользователю.
&providerTpl tpl.HybridAuth.provider Чанк для вывода ссылки на авторизацию или привязку сервиса к учетной записи.
&providers all available Список провайдеров авторизации, через запятую. Все доступные провайдеры находятся тут {core_path}components/hybridauth/model/hybridauth/lib/Providers/. Например, &providers=`Google,Twitter,Facebook`.
&rememberme 1 Запоминает пользователя на долгое время. По умолчанию - включено.

Примеры

Сниппет нужно вызывать некэшированным, так как в зависимости от авторизации пользователя он выводит разные чанки.

При обычном вызове сниппет выведет всех провайдеров, зарегистрированных в системе

[[!HybridAuth]]

Их можно ограничить, указав списком, через запятую:

[[!HybridAuth?
    &providers=`Yandex,Google,Twitter,Facebook,Vkontakte`
]]

Авторизация в 2 контекста сразу:

[[!HybridAuth?
    &providers=`Yandex,Google`
    &loginContext=`web`
    &addContexts=`en`
]]

Настройки провайдеров

Для каждого провайдера авторизации указывается отдельная системная настройка с префиксом ha.keys.:

Значение настройки - JSON массив, содержимое которого зависит от самого провайдера.

Например, для Google нужно указать id и secret, а для Twitter - key и secret. Так что, смотрите внимательно, какие настройки вам выдаят сервис при регистрации.

Ссылки на регистрацию у провайдеров

Для работы компонента нужно получить ключи от провайдера. Поэтому, вот несколько основных ссылок:

Контексты

Если у вас несколько независимых контекстов на сайте, вы можете организовать для них авторизацию через одних и тех же провайдеров, но для разных доменов.

Для этого нужно указывать ключи непосредственно в настройках контекста, а не в общих системных.

Для правильной работы сниппета желательно включить дружественные url.