[UserAuthHash] - авторизацию пользователя по хэш-коду.

[UserAuthHash] позволяет авторизовать пользователя без ввода логина и пароля, переходом на сайт по ссылке с хэш-кодом.

Особенности
— авторизация без ввода логина и пароля, переходом на сайт по ссылке с хэш-кодом
— можно включить/выключить возможность авторизации по хэш-коду, задать время жизни хэш-кода, указать контексты авторизации

Установка
Подключите наш репозиторий
— Установите UserAuthHash

Попробовать пакет перед покупкой можно на modhost.pro, на нём эти дополнения можно выбрать прямо при создании сайта.

Сниппет UserAuthHash
Служит для генерации хэш-кода авторизации.

Пример вызова

стандарнтый синтаксис
<a href="[[++site_start]]?auth_hash=[[!UserAuthHash?&user=`2`&lifeTime=`1h`]]"&msorder=1>Заказы</a>

синтаксис феном
{set $args = [
'msorder' => 1,
'auth_hash' => ('!UserAuthHash'|snippet:['user' => 2,'lifeTime' => '1h'])
]}
<a href="{'site_start'|option|url:['scheme' => 'full','xhtml_urls' => 0]:$args}">Заказы</a>

синтаксис феном модификатор
{set $args = [
'msorder' => 1,
'auth_hash' => (['user' => 'test@gmail.com','lifeTime' => '1h']|getAuthHash)
]}
<a href="{'site_start'|option|url:['scheme' => 'full','xhtml_urls' => 0]:$args}">Заказы</a>

Примечание
Авторизация не работает:
— для пользователей с ключем sudo
— для заблокированных пользователей
— для контекста mgr

Купить [UserAuthHash]
Володя
24 сентября 2019, 07:59
modx.pro
1
432
+9
Поблагодарить автора Отправить деньги

Комментарии: 9

UDAV
24 сентября 2019, 09:55
0
Интересный модуль. Я только не понял как определяется под каким пользователем залогинится юзер и кто эту ссылку генерит?
    Володя
    24 сентября 2019, 10:05
    0
    нужно указать id, либо почту уже существующего пользователя. Использовать при какой либо рассылке, когда необходимо чтоб пользователь автоматически авторизовался при заходе на сайт.
    Yar
    Yar
    24 сентября 2019, 11:47
    0
    Полезная разработка, спасибо
      Александр
      24 сентября 2019, 12:16
      0
      2 раза подобный модуль делал, а прилизать и оформить в отдельный компоненть и выложить руки не добрались :-).
        Володя
        24 сентября 2019, 18:20
        0
        аналогично)
        вот на третий раз уже решил оформить…
        Сергей Шлоков
        24 сентября 2019, 19:50
        0
        Небезопасная вещь.
          Володя
          24 сентября 2019, 19:59
          0
          Какие то замечания по коду? Или просто комментарий ради комментария?
          Дмитрий Касаткин
          01 октября 2019, 15:47
          +1
          @Володя, к сожалению нет возможности потестировать, просто хотел указать, что когда мы такое на своем проекте пилили, у нас возникла проблема с тем что пользователи копировали ссылки с хэшем в GET-параметре из адресной строки и делились друг с другом (не для того чтобы авторизовать их под своим именем, а просто чтобы контентом делились и авторизация была побочным эффектом).

          Нам пришлось после авторизации убирать из location.href этот самый хэш (ну либо делать редирект на новый url в modx, точно не помню как сделали).

          Если у вас это реализовано — то хорошо. Спасибо за реализацию готового решения! Успехов вам!
            Володя
            02 октября 2019, 08:00
            +1
            Доброе утро.
            пользователи копировали ссылки с хэшем в GET-параметре из адресной строки и делились друг с другом (не для того чтобы авторизовать их под своим именем, а просто чтобы контентом делились и авторизация была побочным эффектом).
            Нам пришлось после авторизации убирать из location.href этот самый хэш (ну либо делать редирект на новый url в modx, точно не помню как сделали).
            В текущей версии пакета UserAuthHash возможна только разовая авторизация, после авторизации хэш-код авторизации помечается как отработанный и далее не активен.

            Не уверен что один и тот же хэш-код должен авторизовывать пользователя на постоянной основе, так как возникнут проблемы описанные вами. Возможно у следующих версиях функционал множественной авторизации по одному хэш-коду появится — тогда и буду думать над решением данного вопроса.

            Спасибо!
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            9