cakephp - 如何在 cakePHP4 中禁用授权中间件?
问题描述
默认情况下,授权插件适用于全局范围。对于一些我不想申请任何授权的控制器。我必须skipAuthorization
为每个操作手动使用配置。对于身份验证插件,我只能为每个需要身份验证的控制器加载身份验证组件。但是,即使我没有在控制器中加载授权组件,授权中间件似乎也将始终有效。那么,这是为什么呢?有没有办法可以禁用整个控制器的授权过程?
解决方案
您可能是指身份验证而不是授权。无论如何,来自文档:
// in src/Controller/AppController.php
public function initialize()
{
parent::initialize();
$this->loadComponent('Authentication.Authentication');
}
默认情况下,该组件将需要经过身份验证的用户才能执行所有操作。您可以使用 allowUnauthenticated() 在特定控制器中禁用此行为:
// in a controller beforeFilter or initialize // Make view and index not require a logged in user.
$this->Authentication->allowUnauthenticated(['view', 'index']);
更多信息:Cake Book 中的身份验证插件。