Office 1.1.0 - улучшения авторизации. Modx неправильное имя пользователя или пароль
постоянно слетает пароль в MODX
Одна из проблем, которая возникла при разработке сайте с которой я столкнулся - после переноса сайта на выделенный сервер пароль администратора постоянно слетал. И дело не в том, что пароль постоянно сбрасывается юзерами, а проблема была с сервером. После каждой перезагрузки сервера пароль к админке не подходил. Как итог, MODX выдает ошибку "Неправильное имя пользователя или пароль. Пожалуйста, проверьте введённые данные и попытайтесь снова."
Решить проблему удалось созданием нового пользователя с правами администратора. И заходить уже через него. Для этого перейдите в "Управление" -> "Пользователи". На странице укажите все данные нового юзера и не забудьте поставить неограниченные права:
Как восстановить пароль администратора
Если вы хотите для начала восстановить пароль администратора, в сети есть несколько способов как это сделать. Способ через phpMyAdmin: Найдите таблицу mod_users. В ней найдите вашего пользователя.
- Смените email на правильный и сделайте восстановление через почту.
- Установите значения для полей:password: kXXEPN9pTwdXnaSlDvUzaJcR2y/1XzCqs9AXcxOzFdQ=salt: 18de7acfa078ec932d6d09f18cf0dbac Пароль станет password321. Так же обратите внимание на поле active, его значение должно быть 1.За способ спасибо MerinovKV.
Способ решения проблемы путем создания нового пользователя не идеален, наверняка проблема кроется в отстутствии каких-то библиотек. Если вы найдете другое решение проблемы, просим вас сообщить об этом в комментариях.
Теги:
modx
modx revo
CMF
доступ запрещен
пароль администратора
восстановить
error-log.ru
Office 1.1.0 - улучшения авторизации / modx.pro
Подготовил и выпустил новую версию Office, в которую вошло множество исправлений и улучшений.Список заказов miniShop2 теперь выглядит так:
Улучшение авторизации
Предыдущие версии Office предлагали очень иннвационную систему авторизации, когда нужно было только ввести свой email и перейти по ссылке из почты. Если такого ящика на сайте не было — создавался новый юзер и отправлялось письмо. То есть, даже как таковой регистрации не было.При разработке авторизации мы исходили из следующих предположений:
- Люди не запоминают пароли. Чуть что — они просто делают их сброс через почту.
- Люди привяжут соц.сети к своей учетке — и будут входить через них, чтобы быстрее.
- Такая система очень надежна.
- Люди не запоминают даже свою почту.
- И какие соц.сервисы они привязали — тем более.
- Система действительно надежна, но далеко не всегда удобна.
- Нельзя дать временный доступ к своему аккаунту постороннему лицу
- Можно наплодить кучу левых аккаунтов, пока пытаешься вспомнить, через что ты заходил в прошлый раз?
- Заморочки с первым входом через HybridAuth, потому что не все соц.сервисы отдают почту, а она необходима для работы Office.
- Авторизация и регистрация разделены на две формы. Вы можете попытаться подобрать свой email не создавая новых учеток.
- При авторизации и регистрации можно использовать свой пароль.
- Помнить пароль не нужно, как и раньше. Если вы входите без пароля — он будет сброшен и вы получите письмо с новым паролем и его активацией. Если вы регистрируетесь без пароля — вы получите автоматически сгенерированный и ссылку для активации аккаунта.
- Создание новых учетных записей через HybridAuth отключено! Вы должны нормально зарегистрироваться, а потом привязать соц.сервисы к своей учетке — тогда можно входить через них. Если запись ни к чему не привязана — вы получите понятную ошибку.
Кстати говоря, если вам все эти новшества не по душе — вы можете просто не обновлять чанк авторизации, и всё будет работать как и раньше.
Новая версия уже установлена на нашем хостинге — можно проверять, как работает:
Все, кто уже купил Office могут обновляться, версия хоть и бета, но работает хорошо. Кстати говоря, она уже готова для работы с miniShop2 2.1.8, про который напишу позже.
Обновлено 06.07.2014
Версия 1.1.0-pl:- [miniShop2] Исправлено отображение имён продуктов в версиях MS2 ниже 2.1.8
- [Auth] В форму регистрации добавлены поля «username» и «fullname», по умолчанию. Для заполнения не обязательны.
- [Auth] Возможность использовать для входа логин вместо email.
- [Auth] При попытке входа в неактивированный аккаунт юзер получит новое письмо со ссылкой, вместо ошибки.
- [#3] [Auth] Если юзер зайдёт на форму авторизации через ссылку с параметром ?hauth_return=/url_на_сайте, то после авторизации он будет отправлен на указанный адрес.
- [#2] [Profile] Исправлено удаление свежезагруженного фото в Firefox.
- [#1] [Profile] Улучшено регулярное выражение для очистки полей профиля. Теперь поддерживаются все символы юникод, включая умляуты.
modx.pro
Пользователь или гость? | Зона MODX
Проверить, авторизован ли пользователь на сайте или нет, можно несколькими способами — с помощью фильтров MODX и с помощью методов класса пользователя MODX. Начнём по порядку.
Фильтры MODX
При загрузке страницы MODX выставляет ряд системных плейсхолдеров, в том числе и плейсхолдеры текущего пользователя — modx.user.id и modx.user.username. В них MODX записывает id текущего пользователя и имя пользователя (используемое для логина), при условии конечно, что пользователь авторизован. Если же нет, то modx.user.id будет равен 0, а modx.user.username — "(anonymous)". Кстати, имя гостя можно изменить в системных настройках. К ним мы и будет применять специальные фильтры для проверки авторизации.
Этот способ отлично подойдёт для администраторов и контент-менеджеров, так как не требует от них знаний языка программирования PHP. Достаточно научиться пользоваться фильтрами MODX.
Начнём с самого простого. В шаблонах, ресурсах или чанках вставляем плейсхолдеры текущего пользователя с фильтрами сравнения.
// Если id пользователя больше 0, значит пользователь авторизован, если равен 0, то это гость [[!+modx.user.id:gt=`0`:then=`Пользователь авторизован`:else=`Пользователь не авторизован`]] // Тоже самое, только для другого плейсхолдера. Как правило используется редко [[!+modx.user.username:is=`(anonymous)`:then=`Пользователь авторизован`:else=`Пользователь не авторизован`]] // Плейсхолдеры нужно вызывать некешируемыми.В результате, если пользователь залогинился, то при обработке тега парсер проверит условие фильтра и подставит вместо плейсхолдера блок с содержанием для пользователя. В этом блоке может быть или просто строка, или вызов чанка или вызов сниппета. А если пользователь не авторизовался, то выведется блок с содержанием для гостя.
Это простое решение подойдёт в большинстве случаев. Но у него есть одна тонкость — оно не учитывает контекты. Т.е. если пользователь ещё не авторизовался на сайте (контекст «web»), но авторизовался в админке (контекст «mgr»), то MODX считает пользователя авторизованным и присвоит плейсхолдеру modx.user.id идентификатор пользователя, авторизованного в админке. Из чего следует, что это решение не подойдёт, когда требуется проверка авторизации в конкретном контексте. Для таких случаев в MODX предусмотрены специальные фильтры —
- isloggedin — возвращает TRUE, если пользователь авторизован в текущем контексте.
- isnotloggedin — возвращает TRUE, если пользователь не авторизован в текущем контексте.
Применение фильтров существенно упрощает процесс динамического формирования страницы, но немного нагружает парсер. Кроме того, у них есть один минус — они не работают в ajax режиме.
Программный способ проверки
Для проверки авторизации пользователя в сниппетах и плагинах программистам пригодится метод класса modUser::isAuthenticated(). Он возвращает TRUE, если пользователь авторизован в текущем контексте или в контексте, указанном в качестве аргумента. Как мы видим, он похож на фильтр isloggedin. И это не случайно, так как фильтр как раз и вызывает этот метод для проверки статуса пользователя.
// Проверка авторизации пользователя в текущем контексте if ($modx->user->isAuthenticated()) { // Выполняем код для пользователя }На этом всё. Надеюсь, этот материал поможет новичкам разобраться как выводить разную информацию для гостей и для пользователей.
05 января 2016, 18:01 7555 2
modzone.ru