HybridAuth

    HybridAuth

    Особенности:

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

    Установка

    Скачивать здесь: github.com/Pathologic/EvoHybridAuth

    После установки нужно зайти на страницу веб-пользователя в админке, чтобы создалась таблица. Затем переименовать файл config.sample в config.php в папке assets/plugins/hybridauth/config и настроить в нем необходимые соцсети. По настройке придется гуглить, но что-то можно найти здесь: docs.modx.pro/components/hybridauth/providers/ Также должен быть включен плагин 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

    providerTpl

    шаблон провайдера, доступны плейсхолдеры (ссылка для выполнения действия), (имена классов), (название провайдера)

    activeProviderTpl

    шаблон подключенного провайдера, если не указывать, то используется значение providerTpl

    errorTpl

    шаблон сообщения об ошибке, доступен плейсхолдер

    registerCss

    подключает файл assets/snippets/hybridauth/css/default.css