CakePHP 3在何处使用Auth-> allow和Auth-> deny

时间:2018-09-11 03:03:28

标签: php cakephp php-5.6 cakephp-3.6

我看到在CakePHP 3文档示例中,控制器的 initialize 函数中使用了Auth组件 allow deny 函数。而我在网上和堆栈溢出中看到了一些示例,人们使用这些方法在 beforeFilter 中调用。

在CakePHP 3.6应用程序中解决此问题的最好,最有效的方法是什么?我应该使用以下方法调用:

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

初始化 beforeFilter 中?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

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