after auto logout how to redirect the control to login page in yii2?

六眼飞鱼酱① 提交于 2019-12-11 07:44:14

问题


I am using below code to auto logout after some time interval

'session' => [
    'timeout' => 10,
],
'user' => [
    'identityClass' => 'common\models\User',
    'enableAutoLogin' => false,
    'authTimeout' => 10,
],

It logged out successfully but did not redirect to login page how to do that?


回答1:


You can use behaviors for actions.

 public function behaviors()
 {
     return [
         'access' => [
             'class' => AccessControl::className(),
             'only' => ['index', 'logout','view','create','update','delete'],
             'rules' => [
                 [
                     'actions' => ['index', 'logout','view','create','update','delete'],
                     'allow' => true,
                     'roles' => ['@'],
                 ],
             ],
         ],
     ];
 }

So user is not logged in it will redirect to login url. You can also set login url

'session' => [
        'timeout' => 10,
      ],
'user' => [
      'identityClass' => 'common\models\User',
      'enableAutoLogin' => false,
      'authTimeout' => 10,
      'loginUrl' => 'admin/default/login' // set your login path here
     ],

OR You can use beforeAction method to check that user is logged in or not and send user to login page.

 public function beforeAction($action){

        if (Yii::$app->user->isGuest){
            return $this->redirect(['site/login'])->send();  // login path
        }
    }


来源:https://stackoverflow.com/questions/49672356/after-auto-logout-how-to-redirect-the-control-to-login-page-in-yii2

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!