AdminTools 1.4.0 Авторизация в админке через email
В новой версии можно авторизоваться в админке просто указав имя пользователя или email. На почту придет ссылка, кликнув на которую в течение определённого времени произойдет авторизация в админке.

Мне нравится такой способ и мне кажется он достаточно безопасный. Войти можно только с того же компьютера и в том же браузере, с которого была послана ссылка.
Реализовать через ExtJs у меня не получилось, нет никакой возможности подключить свои скрипты на страницу с формой — у контроллера авторизации не работают методы addJavascript() и addCss() (они работают, но их результат не учитывается), а переопределить этот контроллер при загрузке страницы никак — он жёстко прописывается в коде. По крайней мере, я не нашёл такого способа. А менять ядро по понятным причинам не хотелось. Поэтому я решил использовать стандартную возможность MODX — с версии 2.2.0 можно указывать альтернативный адрес формы авторизации. Но чтобы авторизация заработала, нужно выполнить настройку.
Что ещё хотел отметить. Авторизация происходит через стандартный login-процессор, поэтому все события отрабатывают как положено.
Была ещё мысль в целях повышения безопасности сделать email уведомление пользователю при авторизации в админке через его логин, как это сделано в банк-клиентах. Но потом решил, что это уже перебор.

Мне нравится такой способ и мне кажется он достаточно безопасный. Войти можно только с того же компьютера и в том же браузере, с которого была послана ссылка.
Реализовать через ExtJs у меня не получилось, нет никакой возможности подключить свои скрипты на страницу с формой — у контроллера авторизации не работают методы addJavascript() и addCss() (они работают, но их результат не учитывается), а переопределить этот контроллер при загрузке страницы никак — он жёстко прописывается в коде. По крайней мере, я не нашёл такого способа. А менять ядро по понятным причинам не хотелось. Поэтому я решил использовать стандартную возможность MODX — с версии 2.2.0 можно указывать альтернативный адрес формы авторизации. Но чтобы авторизация заработала, нужно выполнить настройку.
Настройка
Для начала нужно её включить в системных настройках, по-умолчанию она выключена. Там же нужно указать id страницы, на которой будет размещаться форма. Лично я создал новую страницу с пустым шаблоном, на которой вызываю сниппет adminLogin, отвечающий за авторизацию.<!DOCTYPE html>
<html lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=[[++modx_charset]]" />
<meta name="robots" content="noindex" />
<base href="[[++site_url]]" />
<title>[[*pagetitle]]</title>
</head>
<body>
[[!adminLogin]]
</body>
</html>Так получается максимально похоже на админку. Сама форма находится в чанке tpl.login.form.Как работает
Для авторизации нужно ввести логин или email. Если у пользователя нет прав на админку, то «давай, до свидания». Если права есть, то на указанный или найденный по логину email, будет выслана ссылка. Она будет активна согласно системной настройке authorization_ttl. По-умолчанию, 10 минут. По истечению этого времени она деактивируется. Также как и при авторизации через неё. Второй раз по ней не зайдешь. В общем, я уже пользуюсь, вроде всё ок. Но версия пока бета. Кому такая возможность не нужна, просто не включайте настройку.Что ещё хотел отметить. Авторизация происходит через стандартный login-процессор, поэтому все события отрабатывают как положено.
Была ещё мысль в целях повышения безопасности сделать email уведомление пользователю при авторизации в админке через его логин, как это сделано в банк-клиентах. Но потом решил, что это уже перебор.
Комментарии: 18
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Вирусов нет, проблем нет, но опасность с большой буквы. Попахивает разводкой. У меня Касперский. У него претензий нет.
Если включить в системных настройках авторизацию по емайлу и не указать ID ресурса.
То войти в админку site.ru/manager можно с любым паролем!!!!!
Проверял с любых браузеров и даже со смартфона!!!
Отключаю плагин или в системных настройках отключаю авторизацию по емайлу или указываю id ресурса и все норм.
Пароль не имеет значения. Он не учитывается. Авторизация работает только по email. Поэтому адрес должен быть рабочий, а не липовый.
А почему не работает переадресация не знаю, нужно смотреть сайт.