yiisolutions / yii2-user-module
Yii2 用户模块
dev-master
2016-12-20 20:35 UTC
Requires
- yiisoft/yii2: ~2.0.0
Requires (Dev)
- phpunit/phpunit: 5.5.*
This package is not auto-updated.
Last update: 2024-09-14 19:47:38 UTC
README
Yii2 用户模块。
安装
使用 composer
composer require "yiisolutions/yii2-user-module: @dev"
或将它添加到 composer.json
{
"require": {
"yiisolutions/yii2-user-module": "@dev"
}
}
配置
为了启用用户模块,请编辑您的配置文件
<?php return [ // ... 'modules' => [ // ... 'user' => [ 'class' => 'yiisolutions\user\Module', ], // ... ], // ... ];
控制台命令
此模块提供控制台命令以管理用户
user/commands/create- 创建新用户user/commands/truncate- 清空用户表
Web 控制器动作
此模块提供 Web 控制器动作
yiisolutions\user\actions\LoginAction- 用于用户登录yiisolutions\user\actions\LogoutAction- 用于注销yiisolutions\user\actions\SignUpAction- 用于注册新用户
要启用这些动作,请使用控制器 actions() 方法
<?php namespace app\controllers; use Yii; use yii\web\Controller; use yii\web\IdentityInterface; use yiisolutions\user\actions\LoginAction; use yiisolutions\user\actions\LogoutAction; use yiisolutions\user\actions\SignUpAction; use yiisolutions\user\events\LoginEvent; use yiisolutions\user\models\LoginFormInterface; class AccountController extends Controller { public function actions() { return [ 'login' => [ 'class' => LoginAction::className(), 'view' => 'login', // use @app/views/account/login.php view file 'on loginSuccess' => [$this, 'onLoginSuccess'], // alternative success callback (default redirect to back) 'on loginFailed' => [$this, 'onLoginFailed'], // do something when login failed (for example, logging) ], 'logout' => [ 'class' => LogoutAction::className(), ], 'sign-up' => [ 'class' => SignUpAction::className(), ], ]; } /** * Run when login success. */ public function onLoginSuccess(LoginEvent $event, LoginFormInterface $model) { // do something ... $username = $model->getUserIdentity()->username; Yii::info("User '{$username}' logged in"); // override default action return value $event->return = $this->redirect('/profile'); } /** * Run when login error. */ public function onLoginFailed(LoginEvent $event, LoginFormInterface $model) { // do something ... $user = $model->getUserIdentity(); if ($user instanceof IdentityInterface) { // do something, when exists user fail login ... } else { // do something, else ... } $user = $model->getUserIdentity(); if ($user) { // send email notification, increment attempt counter etc ... } } }