首页 > 解决方案 > 在 Yii2 进入管理页面之前如何获取登录页面?

问题描述

我试图在进入 Yii2 的管理页面之前获取登录页面。例如,当我在浏览器上写字时,http://project/admin/应该在登录页面上将我重定向为http://project/admin/login。请任何人帮助我。

Module.php

 public function behaviors(){
        return [
            'access' => [
                'class' => \yii\filters\AccessControl::className(),
                'rules' => [
                    [
                        'allow' => true,
                        'roles' => ['@']
                    ],
                ],
            ],
        ];
    }

public function init()
    {
        parent::init();
        Yii::$app->user->loginUrl = '/admin/main/login';
    }

标签: yiiyii2yii2-basic-app

解决方案


您只需要设置规则(在您的行为方法中)说明在用户登录或不登录时允许访问哪些操作。在您的情况下,可以在用户未登录时访问登录操作,如下所示:

public function behaviors()
{
    return [
        'access' => [
            'class' => AccessControl::className(),
            'rules' => [
                [
                    'actions' => ['login'],
                    'allow' => true,
                    'roles' => ['?'],
                ],
                [
                    'allow' => true,
                    'roles' => ['@'],
                ],
            ],
        ],
    ];
}

推荐阅读