Yii2 框架如果需要分模块登录的话,需要先在 config/web.php 的 components 中增加自己的组件并且指定 class 为 yii\web\User ,因为 Yii2 中的用户登录相关的逻辑存在于这个类中以下以模块 app\modules\admin 为例
$config = [
'user' => [
'identityClass' => 'app\models\User',
'enableAutoLogin' => true,
],
'admin' => [
'class' => 'yii\web\User',
'identityClass' => 'app\modules\admin\models\User',
'enableAutoLogin' => true,
'loginUrl'=>['admin/site/login'], //定义后台默认登录界面[权限不足跳到该页]
'identityCookie' => ['name' => '_admin_identity', 'httpOnly' => true],
'idParam' => '_admin'
]
]
models 中的 User 需要继承 ActiveRecord 并履行 IdentityInterface 接口
注意一定要将 models 中的 User 中的以下部分删除掉,否则会出现登陆后模板中无法通过 Yii::$app->admin->username 获取到用户名的情况
public $id;
public $username;
public $password;
public $authKey;
public $email;
public $accessToken;
模板及 models\LogFrom 中的 Yii::$app->user 更改为 Yii::$app->admin 即可