iiifx-production / yii2-secure-remember-me
Yii2 Secure RememberMe
Installs: 301
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 2
Open Issues: 0
Type:extension
Requires
- php: ^7.0
- iiifx-production/lazy-init: 0.3.*
- yiisoft/yii2: ~2.0.13
Requires (Dev)
- phpunit/phpunit: 4.7.*@stable
This package is not auto-updated.
Last update: 2024-12-20 05:21:09 UTC
README
Secure RememberMe - расширение для фреймворка Yii2, реализующее безопасный способ RememberMe-аутентификации по токену в Cookie.
Установка
Используя Composer:
$ composer require "iiifx-production/yii2-secure-remember-me"
Миграции
Выполнить в консоли:
$ php yii migrate --migrationPath=@vendor/iiifx-production/yii2-secure-remember-me/source/migrations
Настройка
Прописать в конфигурации config/main.php:
'bootstrap' => [ /* ... */ 'rememberMe', # Добавляем к загрузочным компонентам приложения ], 'components' => [ 'rememberMe' => [ # Добавляем компонент в приложение 'class' => 'iiifx\yii2\SecureRememberMe\components\Manager', # Конфигурация компонента 'cookieKey' => 'remember-me', # Имя Cookie параметра 'lifetime' => 2592000, # Время жизни токена, в секундах 'userClass' => 'common\models\User', # Класс пользователя, который используется в приложении ], /* ... */ ],
Использование
Пример подключения расширения к Yii2 Advanced Template.
Вносим изменения в логику входа(LoginForm::login()):
/** * Logs in a user using the provided username and password. * * @return boolean whether the user is logged in successfully */ public function login () { if ( $this->validate() ) { if ( Yii::$app->user->login( $this->getUser() ) ) { # Если разрешен RememberMe пользователем if ( $this->rememberMe ) { /** @var \iiifx\yii2\SecureRememberMe\components\Manager $rememberMe */ $rememberMe = Yii::$app->rememberMe; # Создаем токен для пользователя $rememberMe->create( $this->_user->id ); } return TRUE; } } return FALSE; }
И добавляем удаление токена при выходе(SiteController::actionLogout()):
/** * Logs out the current user. * * @return mixed */ public function actionLogout() { Yii::$app->user->logout(); /** @var \iiifx\yii2\SecureRememberMe\components\Manager $rememberMe */ $rememberMe = Yii::$app->rememberMe; $rememberMe->delete(); return $this->goHome(); }
Проверка, аутентификация по токену и его регенерация происходит автоматически.
Все. Компонент готов к работе.
Тесты
@TODO