HybridAuth
Последнее обновление not available | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn moreИнтеграция open source PHP-библиотеки социальной авторизации HybridAuth в MODX Revolution.
Главная цель HybridAuth: абстрактный API между вашим приложением и социальными API и провайдерами идентификации Facebook, Twitter, MySpace, LinkedIn, Google, Yahoo и др.
HybridAuth помогает разработчикам строить социальные приложения: sign-in, sharing, профили, списки друзей, ленты активности, статусы и другое.
В MODX можно войти на сайт и привязать аккаунты внешних сервисов к одному профилю пользователя.
Установка¶
Сначала посмотрите видео
-
Зарегистрируйте приложения и получите API-ключи. Например, создайте приложение Twitter: https://dev.twitter.com/apps/new
-
Откройте системные настройки в менеджере, переключитесь на hybridauth и создайте или обновите ha.keys.Servicename. Для Twitter это ha.keys.Twitter
-
Укажите ключи как JSON-строку с массивом
{"key":"your key from twitter","secret":"secret from twitter"}
Это нужно для корректной инициализации библиотеки (http://hybridauth.sourceforge.net/userguide/Configuration.html).
-
Запустите сниппет
[[!HybridAuth?providers=Twitter]]на любой странице
При ошибках инициализации библиотеки запись попадёт в системный лог.
Параметры¶
| Параметр | Описание | По умолчанию |
|---|---|---|
| providers | Список провайдеров через запятую. Все провайдеры: /core/components/hybridauth/model/hybridauth/lib/Providers/. Например, &providers=Google,Twitter,Facebook. |
нет |
| rememberme | При true пользователь запоминается надолго | true |
| groups | Список групп через запятую для добавления при первом входе. Например, &groups=Users:1 добавит пользователя в группу «Users» с ролью «member» |
нет |
| action | Режим работы. По умолчанию загружает чанки по статусу пользователя | loadTpl |
| loginTpl | Чанк для анонимного пользователя | tpl.HybridAuth.login |
| logoutTpl | Чанк для авторизованного пользователя | tpl.HybridAuth.logout |
| profileTpl | Чанк для просмотра и редактирования профиля | tpl.HybridAuth.profile |
| loginContext | Основной контекст авторизации. По умолчанию текущий контекст | current |
| addContexts | Дополнительные контексты через запятую. Например, &addContexts=web,ru,en |
нет |
| profileFields | Поля профиля для отображения и редактирования | username:25,email:50,fullname:50... |
| requiredFields | Обязательные поля при обновлении профиля. Например, &requiredFields=username,fullname,email |
username,email,fullname |
| loginResourceId | ID ресурса для редиректа после входа. 0 означает редирект на текущую страницу | 0 |
| logoutResourceId | ID ресурса для редиректа после выхода. 0 означает редирект на текущую страницу | 0 |
Примеры¶
Регистрация в группу Users
[[!HybridAuth? providers=`Google,Twitter,Facebook` &groups=`Users`]]
Обновление профиля
[[!HybridAuth? providers=`Google,Twitter,Facebook` &action=`UpdateProfile`]]
Обновление профиля с обязательным фото
[[!HybridAuth? providers=`Google,Twitter,Facebook` &action=`UpdateProfile` &requiredFields=`username,email,photo` &profileFields=`username,fullname,email,photo`]]
Известные проблемы¶
- Ошибка «You cannot access this page directly» возникает, когда сессия пользователя кешируется opcode-cacher, например php-apc. На MODXCloud это происходит часто
Добавьте в /index.php в корне сайта строку для отключения кеширования apc:
ini_set('apc.cache_by_default', 0);
Иначе сессия будет кешироваться и сниппет работает некорректно.
Интеграция сервисов¶
- HybridAuth.Integrating Facebook
- HybridAuth.Integrating Google
- HybridAuth.Integrating Twitter
- HybridAuth.Integrating VK.com
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn more










