我基本上是一名PHP开发人员&学习Yii2。我正在开发具有基于帐户的登录系统的Web应用程序。就像我在PHP Web应用程序中所做的那样,我想阻止匿名人员访问仪表板视图(如果他/她未经过身份验证)。就像有人试图从外部访问url(任何相关的URL)一样:
www.example.com/staging/frontend/web/index.php?r=site/dashboard
此时应该将该人重定向到登录页面,因为该人无权直接访问基于帐户的页面。
在MVC框架中实现此目的的方向是什么?
答案 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
页。