首页 > 解决方案 > 在 CakePHP 3 中在哪里使用 Auth->allow 和 Auth->deny

问题描述

我看到在 CakePHP 3 文档示例中,Auth 组件允许拒绝函数用于控制器的初始化函数。而我在网上和 stackoverflow 上看到了一些示例,人们在beforeFilter中使用这些方法调用。

在 CakePHP 3.6 应用程序中处理这个问题的最好和最有效的方法是什么?我应该使用以下方法调用:

$this->Auth->allow(/*...*/);
$this->Auth->deny(/*...*/);

初始化beforeFilter 中

谢谢你的帮助。

标签: phpcakephpphp-5.6cakephp-3.6

解决方案


默认情况下,实际检查是否允许操作是在Controller.startup事件中进行的。由于需要在此之前定义允许/不允许的操作,并且两者都Controller::initialize()满足Controller::beforeFilter()此要求,因此两者都应该是定义允许操作的良好候选者。

但是,在Auth配置中,您可以更改完成此检查的事件,因此定义允许操作的更安全的地方是Controller::initialize(),因为它在任何Auth可以挂钩的事件之前被调用。


推荐阅读