larikmc/yii2-auth
最新稳定版本:1.0.0
Composer 安装命令:
composer require larikmc/yii2-auth
包简介
Common authentication module for Yii2 advanced backend
README 文档
README
Общий модуль авторизации для Yii2 (advanced template, backend).
Модуль предназначен для использования на нескольких проектах и позволяет иметь
одну авторизацию, один дизайн и одну логику безопасности,
обновляемые централизованно через Composer.
🚀 Возможности
🔐 Авторизация
- Login / Logout
- Поддержка rememberMe
- Собственный layout и стили (AssetBundle)
🛡 Защита от брутфорса (v2)
- Лимиты по IP — защита endpoint от массового спама
- Лимиты по email (аккаунту) — защита целевого пользователя
(работает даже при смене IP и User-Agent) - Безопасная задержка между попытками (
usleep, capped) - CAPTCHA после N неудачных попыток
- Временная блокировка входа с таймером
- Уведомление администратору при блокировке аккаунта
- Anti-spam защита уведомлений (одно письмо за период блокировки)
🤖 Защита от ботов
- Honeytoken (скрытое текстовое поле)
- Детект POST-запросов без загрузки формы
📦 Установка
Вариант 1: локальная разработка (path repository)
/projects
├─ site1
│ └─ composer.json
├─ yii2-auth
│ └─ composer.json
{
"repositories": [
{
"type": "path",
"url": "../yii2-auth",
"options": {
"symlink": true
}
}
],
"require": {
"larikmc/yii2-auth": "^1.0"
}
}
composer update larikmc/yii2-auth
Вариант 2: установка через Composer
composer require larikmc/yii2-auth:^1.0
⚙ Подключение модуля
'modules' => [ 'auth' => [ 'class' => larikmc\auth\Module::class, 'userClass' => \common\models\User::class, // 🔧 Настройки защиты 'maxUserAttempts' => 10, // Максимум неудачных попыток 'captchaAfterAttempts' => 3, // После скольких ошибок показывать CAPTCHA 'lockDuration' => 900, // Время блокировки (сек) 'userAttemptsTtl' => 900, // Время хранения счётчиков 'maxDelaySeconds' => 2, // Максимальная задержка (сек, capped) ], ],
🔗 URL и маршрутизация
По умолчанию модуль доступен по адресам:
| Действие | URL |
|---|---|
| Login | /auth/auth/login |
| Logout | /auth/auth/logout |
| CAPTCHA | /auth/auth/captcha |
Короткие URL (рекомендуется)
Добавьте правило в urlManager:
'rules' => [ 'login' => 'auth/auth/login', 'logout' => 'auth/auth/logout', ],
После этого будут доступны:
/login/logout
👤 Требования к модели пользователя
В модели пользователя (например common/models/User) необходимо реализовать метод:
public static function findByEmail(string $email) { return static::findOne([ 'email' => $email, 'status' => self::STATUS_ACTIVE, ]); }
Модель должна реализовывать интерфейс yii\web\IdentityInterface.
📧 Уведомление администратору
При блокировке входа по email модуль отправляет письмо администратору.
Настройка params.php
return [ 'adminEmail' => 'admin@mail.ru', 'supportEmail' => 'no-reply@your-domain.tld', ];
Важно
- Убедитесь, что компонент
mailerнастроен - Для реальной отправки писем
useFileTransportдолжен бытьfalse - При
useFileTransport = trueписьма сохраняются вruntime/mail
📌 Требования
- PHP >= 7.4
- Yii2 ~2.0
- yii2-bootstrap5
📄 Лицензия
MIT
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2025-12-30