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'));
        }
    }

方法二:寫一個控制器基類,然後繼承其init方法,然後做判斷


方法三:在Module類裏進行判斷處理。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章