yii2 后台页面如何控制没有登录的情况下,全部跳转到登录页面? [ 2.0 版本 ]
yii2 后台页面如何控制没有登录的情况下,全部跳转到登录页面?
最佳答案
-
为了你以后做权限控制,建议增加一个 控制器中间层 在中间层用 beforeAction 做统一的过滤 代码如下
/** * 在程序执行之前,对访问的方法进行权限验证. * @param \yii\base\Action $action * @return bool * @throws ForbiddenHttpException */ public function beforeAction($action) { //如果未登录,则直接返回 if(Yii::$app->user->isGuest){ return $this->goHome(); } //获取路径 $path = Yii::$app->request->pathInfo; //忽略列表 if (in_array($path, $this->ignoreList)) { return true; } if (Yii::$app->user->can($path)) { return true; } else { throw new ForbiddenHttpException(Yii::t('app', 'message 401')); } }
其他 2 个回答
-
jhomephper 回答于 2015-06-12 10:53 举报
写一些控制器类,如果是游客就跳到登陆页,其它的控制器继承这个类
-
两个方式,一个是写个控制器基类,然后继承其init方法,然后做判断。
第二个方式是,在Module类里进行处理也是一样的。
各有好处,看你场景。
共 3 条回复xin6841414 回复于 2017-12-28 17:30 回复@chenqiwen 请问 model类里怎么处理这个 怎么跳转到登录页面,
@xin6841414 Module不是model
acking 上海
注册时间:2012-05-16
最后登录:2024-05-25
在线时长:65小时55分
最后登录:2024-05-25
在线时长:65小时55分
- 粉丝13
- 金钱2565
- 威望0
- 积分3215