Jump to main content Jump to doc navigation

Интеграция open source PHP-библиотеки социальной авторизации HybridAuth в MODX Revolution.

Главная цель HybridAuth: абстрактный API между вашим приложением и социальными API и провайдерами идентификации Facebook, Twitter, MySpace, LinkedIn, Google, Yahoo и др.

HybridAuth помогает разработчикам строить социальные приложения: sign-in, sharing, профили, списки друзей, ленты активности, статусы и другое.

В MODX можно войти на сайт и привязать аккаунты внешних сервисов к одному профилю пользователя.

Установка

Сначала посмотрите видео

  1. Зарегистрируйте приложения и получите API-ключи. Например, создайте приложение Twitter: https://dev.twitter.com/apps/new

  2. Откройте системные настройки в менеджере, переключитесь на hybridauth и создайте или обновите ha.keys.Servicename. Для Twitter это ha.keys.Twitter

  3. Укажите ключи как JSON-строку с массивом

    {"key":"your key from twitter","secret":"secret from twitter"}
    

    Это нужно для корректной инициализации библиотеки (http://hybridauth.sourceforge.net/userguide/Configuration.html).

  4. Запустите сниппет [[!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`]]

Известные проблемы

  1. Ошибка «You cannot access this page directly» возникает, когда сессия пользователя кешируется opcode-cacher, например php-apc. На MODXCloud это происходит часто

Добавьте в /index.php в корне сайта строку для отключения кеширования apc:

ini_set('apc.cache_by_default', 0);

Иначе сессия будет кешироваться и сниппет работает некорректно.

Интеграция сервисов

  1. HybridAuth.Integrating Facebook
  2. HybridAuth.Integrating Google
  3. HybridAuth.Integrating Twitter
  4. 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

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • CrewMark
  • Fabian Christen
  • Sepia River Studios
  • Dannevang Digital
  • Alex
  • A. Moreno
  • Chris Fickling
  • Stéphane Jäggi
  • Murray Wood
  • Anton Tarasov
  • deJaya
  • JT Skaggs
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

$204 per month—let's make that $500!

Learn more