iiifx-production / yii2-secure-remember-me
Yii2 Secure RememberMe
v1.1.0
2019-02-03 11:36 UTC
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-09-13 04:14:13 UTC
README
Secure RememberMe - 为 Yii2 框架实现安全 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