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
Сергей на твой modzone.ru ругается веб, че у тебя там?
Написал в техподдержку доктора, сайт удалили из базы вредоносных сайтов. Всё теперь чисто.
А что сказали хоть, по какой причине зпнесли в черный тебя?
Возможно до меня на этом ip был вредоносный сайт.
Заметил баг безопасности с AdminTools.
Если включить в системных настройках авторизацию по емайлу и не указать ID ресурса.
То войти в админку site.ru/manager можно с любым паролем!!!!!
Проверял с любых браузеров и даже со смартфона!!!
Отключаю плагин или в системных настройках отключаю авторизацию по емайлу или указываю id ресурса и все норм.
Если включить в системных настройках авторизацию по емайлу и не указать ID ресурса.
То войти в админку site.ru/manager можно с любым паролем!!!!!
Проверял с любых браузеров и даже со смартфона!!!
Отключаю плагин или в системных настройках отключаю авторизацию по емайлу или указываю id ресурса и все норм.
Поэтому и бета. Исправил. Спасибо.
Здравствуйте, Сергей! Один вопрос, то есть этот способ нужен, если самостоятельно зарегистрировать менеджера с правами на бэкэнд и дать ссылку на страницу авторизации по мейлу? То есть пароль запоминать не обязательно а ему его вообще знать не нужно? И как быть с авторизацией по /manager, есть менеджеры которую ее знает и у них заполнены логин пароль… и так же в личном кабинете они могут нажать изменить пароль или сбросить, и на почту прийдет письмо со ссылкой на обычную авторизацию… Или старую можно как-то скрыть и оставить только для себя? Еще один обидный момент, этот способ не работает при офлайн сайте, пока идет тест или подбор админов:(+ страница должна быть опубликована
Этот способ работает для всех без исключения! На страницу /manager/ зайти никому не получится — плагин переадресовывает на указанный ресурс. Для авторизации хоть менеджера хоть админа нужно указать логин или email. Если нужно сделать выборочную авторизацию по email, то в плагине можно добавить условие для переадресации (например, принадлежность к какой-либо группе).
Пароль не имеет значения. Он не учитывается. Авторизация работает только по email. Поэтому адрес должен быть рабочий, а не липовый.
Пароль не имеет значения. Он не учитывается. Авторизация работает только по email. Поэтому адрес должен быть рабочий, а не липовый.
странно, я разлогинился и смог открыть как созданную мною страницу с авторизацией по мейлу, так и просто /manager где нужно ввести логин и пасс, как обычно. 2е- если разлогинится, то снова открывается страница /manager :( Вот при авторизации через мейл на /manager перебрасывает, но так как авторизация прошла я вижу админку, как и должно быть. Собственно поэтому у меня и появились вопросы, если заходить на сайт/manager спокойно открывается старая форма, в тот же момент я могу открыть сайт/avtorizaciya-adminov и предлагает ввести логин и сбросить линк… сбрасывает и на почту приходит… не понимаю, что сделал не так. Сайт включил в онлайн, в настройках вкл функцию авторизации через мейл и указал ресурс (131), страницу опубликовал.
Странно. У меня всё работает — и при разлогинивании и при вводе адреса. На /manager/ зайти невозможно.
Хм:( странно… то есть у вас, даже при выключенном сайте можно зайти на эту страницу, так как она должна заменять /manager?
Нет. Сделаю отмену переадресации у выключенного сайта в новой версии.
не, на выключенном сайте у меня вообще не открывается страница сайт/по-мейлу, вылезает сообщение о недоступности сайта, как на любой другой… работает только сайт/manager. А я думал, что сайт/по-мейлу заменит его, и при выключенном сайте я смогу зарегать 30 контент менеджеров и скинуть ссылку на логин по мейлу, ну и тестить, кто как работает. В любом случае, даже когда все нормально включено и настроено, у меня все равно открывается /manager, как ни в чем не бывало, попробую еще раз вечерком, хорошенько почистив права доступа и кэш сайта, ну и браузер… может поможет
На выключенном сайте показывается всего одна страница — указанная в настройке site_unavailable_page. Можно указать в ней 131 страницу.
А почему не работает переадресация не знаю, нужно смотреть сайт.
А почему не работает переадресация не знаю, нужно смотреть сайт.
блин, точно! спасибо, думаю разберусь.
переадресация работает :) При отключенном сайте, указав страницу 131, как site_unavailable_page правда выдает ошибку, когда пишешь логин, «сервис не доступен» но письмо все равно доходит и авторизация проходит)
наткнулись на неприятный казус, теперь админы не могут фронт энд залогинится :)) у меня оффисс… он просил логин, а говорит что ссылку уже отправляли, ее надо активировать… а я по ней уже в бэкэнде зашел…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.