Почему в новых версиях MODX не работает сброс пароля через MD5 и как восстановить доступ в manager
Вы заходите в /manager, вводите логин и пароль — и MODX просто не пускает.
Пароль «точно правильный».
Его только что поменяли в базе через MD5 — как советуют старые статьи и форумы.
Но входа нет.
Почему так происходит
В старых версиях MODX (Evo и ранние Revo) действительно хватало простой замены пароля:
UPDATE modx_users SET password = MD5('newpassword') WHERE username = 'user';
Интернет до сих пор завален инструкциями 2010–2014 годов, где этот способ описан как рабочий.
Проблема в том, что в новых версиях MODX схема авторизации изменилась.
Теперь учитываются:
профиль пользователя (modx_user_attributes)
активность пользователя
группы и роли
корректная связка с контекстом manager
более сложная логика проверки пароля
В результате:
пароль в базе есть,
но для MODX пользователь считается некорректным.
Самая частая ошибка
Пытаться «починить» существующего пользователя:
менять пароль
трогать соль
удалять данные вслепую
Это редко даёт стабильный результат.
Самый надёжный способ: создать нового администратора
Проще и безопаснее создать нового пользователя-администратора напрямую в базе, а потом уже войти в админку и навести порядок.
Ниже — пошаговый вариант через phpMyAdmin.
Шаг 1. Определяем базу и префикс таблиц
Открой файл:
core/config/config.inc.php
Найди:
$dbase — имя базы данных
$table_prefix — префикс таблиц (не всегда modx_)
⚠️ Если у тебя префикс другой — замени modx_ в запросах ниже на свой.
Шаг 2. Создаём пользователя
В phpMyAdmin → вкладка SQL:
INSERT INTO modx_users (username, password, active, class_key) VALUES ('my_admin', MD5('MyStrongPass123!'), 1, 'modUser') ON DUPLICATE KEY UPDATE password = MD5('MyStrongPass123!'), active = 1;
Это создаст (или активирует) пользователя my_admin.
Шаг 3. Создаём профиль пользователя (обязательно)
Без записи в modx_user_attributes MODX может вести себя некорректно.
INSERT INTO modx_user_attributes (internalKey, fullname, email) SELECT u.id, 'Temp Admin', '' FROM modx_users u LEFT JOIN modx_user_attributes a ON a.internalKey = u.id WHERE u.username = 'my_admin' AND a.internalKey IS NULL;
Шаг 4. Добавляем в группу администраторов
Сначала можно проверить, как называется группа:
SELECT id, name FROM modx_user_groups;
Обычно это Administrator или Administrators.
Добавляем пользователя:
INSERT INTO modx_member_groups (member, user_group, role) SELECT u.id, g.id, 2 FROM modx_users u JOIN modx_user_groups g ON g.name IN ('Administrator','Administrators') LEFT JOIN modx_member_groups mg ON mg.member = u.id AND mg.user_group = g.id WHERE u.username = 'my_admin' AND mg.member IS NULL;
Шаг 5. Вход в админку
Пробуем войти:
/manager
логин: my_admin
пароль: MyStrongPass123!
После входа:
поменяйте пароль на свой
при необходимости удалите временного пользователя
Если не сработало — проверьте
Префикс таблиц
Пользователь активен (active = 1)
Есть запись в modx_user_attributes
Пользователь в группе Administrator
Кеш MODX очищен (core/cache/*)
В большинстве случаев проблема именно здесь.
В итоге
MD5 в MODX больше не является «универсальным решением»
старые инструкции вводят в заблуждение
самый стабильный путь — корректно создать администратора в базе
Этот подход регулярно выручает при переносах, восстановлении сайтов и работе с бэкапами.
Комментарии: 1
Интернет до сих пор завален инструкциями 2010–2014 годов,вы что в спутнике ищите
все работает нормально и не надо усложнять
В таблице *_users у пользователя значение в поле hash_class ставим hashing.modMD5, поля salt и cachepwd очищаем, а в поле password меняем значение на: d8578edf8458ce06fbc5bb76a58c5ca4
входим под поролем qwerty
протестил даже для интереса на тройке
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.