首页 > 解决方案 > 如何在 cakePHP4 中禁用授权中间件?

问题描述

默认情况下,授权插件适用于全局范围。对于一些我不想申请任何授权的控制器。我必须skipAuthorization为每个操作手动使用配置。对于身份验证插件,我只能为每个需要身份验证的控制器加载身份验证组件。但是,即使我没有在控制器中加载授权组件,授权中间件似乎也将始终有效。那么,这是为什么呢?有没有办法可以禁用整个控制器的授权过程?

标签: cakephpauthorizationmiddlewarecakephp-4.x

解决方案


您可能是指身份验证而不是授权。无论如何,来自文档:

// 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 中的身份验证插件


推荐阅读