new

Cabinet

Личный кабинет пользователя
Автор дополнения
Prihod
Пакетов
38
Закачек
13 646
Обычно отвечает в течение недели
Автор дополнения
Пакетов
38
Закачек
13 646
Обычно отвечает в течение недели
Версия 3.1.0-pl
Дата выпуска 19.10.2026
Загрузки 90
Просмотры 4 095
Комплексное решение для быстрого внедрения личного кабинета пользователя в MODX2/3 Revolution. Идеально подходит как для опытных разработчиков, так и для новичков.

Основные возможности
  1. Автоматическая настройка прав доступа
  2. Автоматическое создание страниц и разделов
  3. Поддержка модального режима работы
  4. Интеграция с социальными сетями для регистрации/авторизации
  5. Верификация телефона через SMS/Voice OTP
  6. Интеграция с дополнениями:
  7. Расширенные возможности для интернет-магазина:
    • Автоматическая авторизация при первом заказе
    • История и управление заказами
    • Повторный заказ товаров
    • Шаринг заказов
  8. Гибкое управление профилем пользователя
  9. Защита от CSRF-атак
  10. Yandex SmartCaptcha
  11. reCAPTCHA 3
  12. Bootstrap 5
  13. Нативный JavaScript

Демонстрационное видео


RuTube

Полная документация

[3.1.0-pl] - 2026-10-19

Добавлено

  • Вход по коду из SMS/звонка в режиме cabinet_auth_mode = phone (настройка cabinet_auth_login_otp): форма входа запрашивает только телефон, пароль пользователя не меняется, неактивный пользователь активируется, заблокированному отказ
  • Капча по порогу для входа по коду (cabinet_auth_login_otp_captcha_after, провайдер cabinet_auth_login_otp_captcha: Yandex SmartCaptcha или Google reCAPTCHA v3)
  • Нормализация номеров 8XXXXXXXXXX: RU/KZ → +7, UA 8 0XX → +380

Исправлено

  • Усилена защита входа, регистрации и восстановления пароля: лимиты попыток и проверки капчи
  • Усилена защита входа и подтверждения по коду из SMS/звонка
  • Усилена защита выхода и подтверждения смены данных профиля
  • Лимит смены пароля не расходуется на ошибки в новом пароле (опечатка в подтверждении, длина) и в режиме, где текущий пароль не запрашивается
  • Смена телефона звонком: при неудачном звонке клиент получал «успех» и ждал звонка
  • Сбой SMS-провайдера не расходует лимит отправок пользователя
  • Повторная отправка кода иногда отвечала «номер не найден», если форма проверяла поле в момент запроса кода
  • Фронт: лишний повторный запрос входа при капче по порогу; ссылка «Отправить повторно» выключалась навсегда после любой ошибки
  • Сборка: в транспортный пакет попадали служебные файлы
  • Установка: в таблице заказов MiniShop3 не создавалась колонка share_key (ссылка «поделиться заказом»), и запросы к заказам падали с Unknown column 'msOrder.share_key'; колонку и индекс добавляет резолвер при установке и обновлении
  • Вход звонком через AlphaSms и TeraSms (провайдер возвращал код «1»)
  • Форматирование телефона в сообщениях: длина кода страны по E.164
  • Приоритет операторов при чтении user_id в привязке соцсети
  • SMS-провайдеры не работали: из зависимостей пакета выпали их SDK, и вместо отправки коды писались в журнал; в cabinet_phone_handler_class можно указывать короткое имя встроенного провайдера (AlphaSms, GreenSms…)
  • Вход звонком через GreenSMS (отправлялась пустая SMS, вызов падал с ошибкой)
  • Регистрация с паролем без активации всегда уходила в подтверждение кодом
  • Настройки cabinet_otp_ttl и cabinet_link_ttl не применялись
  • Повторное подтверждение после повторной отправки кода падало на проверке SmartCaptcha
  • Ошибки типов в запросах REST приводили к фатальной ошибке вместо ответа
  • После установки режим отладки cabinet_debug выключен; cabinet_require_current_password включена, как и раньше

Добавлено (защита)

  • Лимиты регистрации (cabinet_signup_attempts_limit, cabinet_signup_lock_time) и неверного текущего пароля при смене пароля (cabinet_password_change_attempts_limit, cabinet_password_change_lock_time); вход неактивного пользователя отправляет код активации в пределах лимита восстановления

[1.3.0-pl] - 2026-10-18

Добавлено

  • Вход по коду из SMS или звонка в режиме cabinet_auth_mode = phone (настройка cabinet_auth_login_otp)
  • Капча по порогу для входа по коду: после N отправок кода на номер запрос кода требует капчу (настройка cabinet_auth_login_otp_captcha_after, 0 — выключено); лимиты при этом продолжают действовать
  • Предупреждение в логе, если вход по коду включён без капчи на auth/login
  • Выбор провайдера капчи по порогу входа по коду: Yandex SmartCaptcha или Google reCAPTCHA v3 (настройка cabinet_auth_login_otp_captcha, пусто — первый провайдер с ключами); включать провайдер для всех форм не обязательно
  • Лимит попыток смены пароля (настройки cabinet_password_change_attempts_limit, cabinet_password_change_lock_time)

Исправлено

  • Уязвимости безопасности
  • Не выводилось время разблокировки в сообщении о превышении попыток подтверждения кода
  • Вывод телефона в сообщениях: неверное определение кода страны (+79 99-00-00-00-1 вместо +7 (999) 000-00-01)
  • Номера в формате 8XXXXXXXXXX приводятся к международному: RU/KZ → +7XXXXXXXXXX, UA (8 0XX…) → +380XXXXXXXXX
  • Ссылка «Отправить повторно» навсегда выключалась после неудачной повторной отправки (например, без пройденной капчи)
  • После запроса кода повторная отправка иногда отвечала «Номер телефона не найден»
  • Не применялись настройки времени жизни кода и ссылки cabinet_otp_ttl и cabinet_link_ttl
  • Вход и подтверждение звонком (cabinet_otp_phone_mode = call) у провайдеров AlphaSms, TeraSms и GreenSms
  • Смена телефона в профиле в режиме звонка: при неудачном звонке выводилось сообщение об успехе
  • Ошибки в новом пароле при смене пароля засчитывались в лимит попыток
  • При обновлении пакета не перезаписывались чанки, отмеченные в форме обновления

[1.2.0-beta] - 2026-06-21

Исправлено

  • Уязвимости безопасности

Добавлено

  • Защита от brute force: rate limiting для входа, регистрации и восстановления пароля
  • Новые системные настройки: cabinet_login_max_attempts, cabinet_login_decay_seconds, cabinet_signup_max_attempts, cabinet_signup_decay_seconds, cabinet_recovery_max_attempts, cabinet_recovery_decay_seconds, cabinet_trusted_proxies, cabinet_availability_max_attempts,cabinet_availability_decay_seconds, cabinet_otp_confirm_max_attempts

[1.1.4-beta] - 2026-05-24

Исправлено

  • Вывод стоимости заказа в чанке cabinetOrderDetails

[1.1.3-beta] - 2026-02-07

Исправлено

  • При смене номера телефона в профиле отправка смс на старый номер

[1.1.2-beta] - 2026-01-19

Исправлено

  • Сниппет cabinetSharedOrder

[1.1.1-beta] - 2025-06-23

Исправлено

  • Чанк cabinet.login

[1.1.0-beta] - 2025-06-01

Добавлено

  • Yandex SmartCaptcha
  • Опции:
    • Включить Yandex SmartCaptcha
    • Использовать Yandex SmartCaptcha для действий
    • Клиентский ключ Yandex SmartCaptcha
    • Серверный ключ Yandex SmartCaptcha

Изменено

  • Чанк "cabinet.auth"

[1.0.10-beta] - 2025-04-07

Исправлено

  • Валидация телефона при авторизации и восстановлении пароля

[1.0.9-beta] - 2025-03-05

Исправлено

  • Инициализация конфига в классе CabinetPhone

[1.0.8-beta] - 2025-02-24

Исправлено

  • После обновления 1.0.6-beta циклическая переадресация если выключена настройка cabinet_auth_modal

    Изменено

  • Код модального окна

[1.0.7-beta] - 2025-02-23

Удалено

Закрытие модального окна при клике вне формы

[1.0.6-beta] - 2025-02-21

Исправлено

  • Игнорирование параметра loginPageId при активации пользователя
  • Размер модального окна при загрузке фото для аватарки портретного формата

[1.0.5-beta] - 2025-02-18

Добавлено

  • События:
    • cabinetBeforeUploadAvatar
    • cabinetUploadAvatar
    • cabinetBeforeRemoveAvatar
    • cabinetRemoveAvatar
  • Поле payment_link у заказа в сниппетах cabinetOrders и cabinetOrderDetails

    Изменено

    • Обработка параметров avatarPath и avatarUrl сниппета cabinetProfile

[1.0.3-beta] - 2025-02-14

Исправлено

  • Загрузка аватарки пользователя

[1.0.2-beta] - 2025-02-08

Удалено

  • Тег «meta name="robots" content="noindex, nofollow"» в чанках:
    • cabinet.auth.wrapper
    • cabinet.profile

[1.0.1-beta] - 2025-02-06

Исправлено

  • Проверка CSRF токена

Последние обсуждения в сообществе MODX.pro