我不希望猜测网址的人被自动重定向到登录页面。除非重定向,否则我想抛出一个错误,除非你当然登录。这样做的yii2方式是什么?
答案 0 :(得分:2)
找到解决方案。在behaviours
中,您可以添加
[
'class' => AccessControl::className(),
...
'denyCallback' => function ($rule, $action) {
throw new \Exception('You are not allowed to access this page');
}
]
根据http://www.yiiframework.com/doc-2.0/guide-security-authorization.html
答案 1 :(得分:0)
您可以覆盖相关控制器中的beforeAction()方法。
/**
* @inheritdoc
*/
public function beforeAction($action)
{
if(Yii::$app->getUser()->isGuest && !in_array($action->id,['allowed', 'actions', 'here']))
throw new \yii\web\HttpException(403, 'Page could not be found.');
if (!parent::beforeAction($action)) {
return false;
}
return true;
}
有关该主题的进一步阅读,您可以查看Yii2文档:yii\base\Controller beforeAction() details