[英]Yii2 how change loginUrl in components user for module
我有以下配置組件user
'user' => [
'identityClass' => 'app\models\web\User',
'enableAutoLogin' => true,
'loginUrl'=>['/backend/login'],
],
我有2個模塊backend
和frontend
。 我想如果用戶進入后端部分需要使用以下規則'loginUrl'=>['/backend/login']
並且如果到了frontend部分這個規則'loginUrl'=>['/frontend/login']
。 我怎樣才能做到這一點?
對於任何模塊或控制器,您可以使用模塊或控制器中的AccessControl行為重定向到您的登錄操作:
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['login'],
'allow' => true,
'roles' => ['?'],
],
[
'actions' => ['index'],
'allow' => true,
'roles' => ['@'],
],
],
'denyCallback' => function($rule, $action) {
return Yii::$app->response->redirect(['/your/login/url']);
},
],
];
}
或者在Module類文件中:
public function init()
{
parent::init();
Yii::$app->user->loginUrl = ['/your/login/url'];
}
如果使用高級模板,則有兩個配置文件
backend / config / main.php
frontend / config / main.php
分離。 您可以單獨配置相應的urlLogin。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.