Yii2:如何通过Url停止未经授权的人查看(页面)

时间:2015-01-16 16:18:45

标签: yii2

我基本上是一名PHP开发人员&学习Yii2。我正在开发具有基于帐户的登录系统的Web应用程序。就像我在PHP Web应用程序中所做的那样,我想阻止匿名人员访问仪表板视图(如果他/她未经过身份验证)。就像有人试图从外部访问url(任何相关的URL)一样:

www.example.com/staging/frontend/web/index.php?r=site/dashboard

此时应该将该人重定向到登录页面,因为该人无权直接访问基于帐户的页面。

在MVC框架中实现此目的的方向是什么?

1 个答案:

答案 0 :(得分:0)

为此,Yii2有一个名为AccessControl的动作过滤器。将其附在behaviors()中的SiteController

public function behaviors()
{
    return [
        'access' => [
            'class' => AccessControl::className(),
            'rules' => [
                [
                    'allow' => true,
                    'actions' => ['dashboard'],
                    'roles' => ['@'], // allow only authenticated users
                ],
            ],
        ];
    ];
}

现在,如果访客用户尝试访问site/dashboard页面,他将自动重定向到site/login页。