定制 larikmc/yii2-auth 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2025-12-30