Двухфакторная аутентификация по email для Cotonti

Плагин Login OTP (2FA) это двухфакторнаю аутентификация для CMF Cotonti v.0.9.26. Пользователю отправляется одноразовый 5-значный код на электронную почту для авторизации.

Login OTP (2FA) — Двухфакторная аутентификация по email

Плагин Login OTP (2FA) для Cotonti Siena

Описание

Плагин Login OTP (2FA) добавляет двухфакторную аутентификацию (2FA) для системы управления контентом Cotonti Siena v.0.9.26. После ввода логина и пароля пользователю отправляется одноразовый 5-значный код (OTP) на электронную почту. Код необходимо ввести на специальной странице для завершения авторизации. Это повышает безопасность входа, защищая от несанкционированного доступа, даже если пароль пользователя был скомпрометирован.

 

att_752.png

 

Плагин полностью интегрируется с ядром Cotonti, поддерживает локализацию (английский, русский, украинский) и имеет адаптивный интерфейс на основе Bootstrap 5 и Bootstrap Icons.

Основные возможности

  • Генерация одноразового 5-значного кода (OTP) для входа.
  • Отправка кода на email пользователя.
  • Настраиваемый срок действия кода (по умолчанию 5 минут).
  • Поддержка опции «Запомнить меня» для сохранения сессии.
  • Адаптивный интерфейс страницы ввода кода с валидацией.
  • Логирование успешных и неуспешных попыток ввода OTP.
  • Многоязычная поддержка: английский, русский, украинский.
  • Интеграция с настройками Cotonti (включение/выключение 2FA, настройка времени жизни кода).

Требования

  • CMF Cotonti Siena: v.0.9.26
  • PHP: 8.4 или выше
  • MySQL: 8.0 или выше
  • Настроенный почтовый сервер для отправки email (через функцию cot_mail()).

Структура плагина

Плагин имеет следующую структуру файлов:

plugins/
└── loginotp/
├── loginotp.setup.php
├── loginotp.install.sql
├── loginotp.uninstall.sql
├── loginotp.users.login.check.php
├── loginotp.php
├── inc/
│   ├── loginotp.functions.php
├── lang/
│   ├── loginotp.en.lang.php
│   ├── loginotp.ru.lang.php
│   ├── loginotp.ua.lang.php
├── tpl/
│   ├── loginotp.tpl

 

Описание файлов

ФайлОписание
loginotp.setup.phpРегистрирует метаданные плагина в админ-панели Cotonti. Содержит конфигурацию плагина (включение 2FA, время жизни кода).
loginotp.install.sqlSQL-скрипт для создания таблицы cot_loginotp, в которой хранятся OTP-коды, их срок действия и пользовательские данные.
loginotp.uninstall.sqlSQL-скрипт для удаления таблицы cot_loginotp при деинсталляции плагина.
loginotp.users.login.check.phpПерехватывает процесс авторизации (хуки users.auth.check). Проверяет логин/пароль, генерирует OTP, сохраняет его в базе и отправляет на email. Редиректирует на страницу ввода кода.
loginotp.phpОбрабатывает страницу ввода OTP (хуки standalone). Проверяет введённый код, авторизует пользователя при успехе или показывает ошибку при неудаче.
inc/loginotp.functions.phpСодержит основные функции плагина: инициализация, проверка активности 2FA, генерация OTP-кода.
lang/loginotp.en.lang.phpЛокализация на английском языке.
lang/loginotp.ru.lang.phpЛокализация на русском языке.
lang/loginotp.ua.lang.phpЛокализация на украинском языке.
tpl/loginotp.tplШаблон страницы ввода OTP. Содержит HTML-форму с Bootstrap-стилями, валидацией и иконками.

Установка

  1. Скачайте плагин из репозитория.
  2. Распакуйте архив и скопируйте папку loginotp в директорию plugins/ вашего сайта на Cotonti.
  3. Перейдите в админ-панель Cotonti: Администрирование → Расширения → Установить новые.
  4. Найдите плагин Login OTP (2FA) и нажмите Установить. Скрипт loginotp.install.sql автоматически создаст таблицу cot_loginotp.
  5. Настройте плагин в разделе Администрирование → Расширения → Login OTP → Конфигурация:
    • otp_enabled: Включить/выключить 2FA (1 = включено, 0 = выключено).
    • otp_lifetime: Время жизни OTP-кода в секундах (300, 600, 900 секунд).
  6. Отправка email функция cot_mail().

Использование

  1. Пользователь вводит логин (или email, если разрешено) и пароль на стандартной странице входа Cotonti.
  2. Если логин и пароль верны, плагин генерирует 5-значный OTP-код, сохраняет его в базе и отправляет на email пользователя.
  3. Пользователь перенаправляется на страницу ввода кода (plug.php?e=loginotp).
  4. На странице ввода кода пользователь вводит полученный OTP. Форма проверяет:
    • Код должен быть 5-значным числом.
    • Код не должен быть просрочен (срок действия указан в настройках).
  5. При правильном коде пользователь авторизуется и перенаправляется на целевую страницу (или главную). При неверном коде показывается ошибка, и пользователь может попробовать снова.

Логирование

Плагин записывает в лог Cotonti (Администрирование → Логи) следующие события:

  • Успешная авторизация: OTP SUCCESS: user_id=X
  • Неуспешная попытка: OTP FAIL: user_id=X, code=Y

Локализация

Плагин поддерживает три языка:

  • Английский (loginotp.en.lang.php)
  • Русский (loginotp.ru.lang.php)
  • Украинский (loginotp.ua.lang.php)

Языковые файлы содержат все сообщения, отображаемые пользователю: заголовки, подсказки, ошибки и текст email. Язык определяется настройками Cotonti.

Шаблон (loginotp.tpl)

Шаблон loginotp.tpl использует Bootstrap 5 для стилизации и включает:

  • Адаптивную форму ввода кода с автоматической фокусировкой на поле.
  • Валидацию на стороне клиента (JavaScript): проверка на 5-значное число.
  • Иконки Bootstrap Icons для уведомлений (информация/ошибка).
  • Стилизованную кнопку отправки с эффектом ховера.
  • Подсказку о сроке действия кода (5 минут) (от фонаря пока, нужно заводить из $valSome = (int) Cot::$cfg['plugin']['loginotp']['otp_lifetime'];).

Конфигурация

Настройки плагина доступны в админ-панели:

  • otp_enabled: Радиокнопка для включения/выключения 2FA (по умолчанию выключено).
  • otp_lifetime: Выпадающий список для выбора времени жизни кода (300, 600, 900 секунд; по умолчанию 600 секунд).

Деинсталляция

  1. Перейдите в Администрирование → Расширения → Login OTP → Удалить.
  2. Скрипт loginotp.uninstall.sql автоматически удалит таблицу cot_loginotp.
  3. Удалите папку plugins/loginotp с сервера.

Лицензия

Плагин распространяется под лицензией BSD. Подробности в файле loginotp.setup.php.
Copyright © 2025 webitproff. Все права защищены.

Контакты и поддержка

Автор: webitproff
GitHub: github.com/webitproff
Для вопросов, предложений или сообщений об ошибках создавайте issue в репозитории.

Версия: 1.1.3 | Дата: 2025-10-26 | Лицензия: BSD
Репозиторий на GitHub

Лицензия BSD License Copyright (c) webitproff 2025

 

4 minutes read Sodium Carbonate

Comments (0)

No comments yet
Only registered users can post new comments

Content author

webitproff

Offline

Sodium Carbonate

Last logged: 2026-07-20 04:22

  • Page published: 2025-10-26 07:39
  • Last update: 2026-02-22 02:15

Similar pages

MStore Email Order для продавцов - Описание функционала плагина
1 Описание функционала плагина MStore Email Order для продавцовПлагин MStore Email Order помогает продавцам, которые
MStore Email Order для покупателей - Описание функционала плагина
2 Описание функционала плагина MStore Email Order для покупателейПлагин MStore Email Order помогает покупателям, которые
MStore Email Order для администраторов
3 Функционал плагина MStore Email Order для администраторовПлагин MStore Email Order позволяет администраторам сайта
Плагин MStore Email Order (mstoremailorder)
4 MStore Email Order (mstoremailorder)ВведениеПлагин MStore Email Order (кодовое имя: mstoremailorder) разработан для