CakePHP 3.6.10禁用完全CSRF令牌检查

Dan*_*ani 0 cakephp-3.0

我需要完全禁用对我的应用程序的CSRF令牌的控制.我试着用:

    public function beforeFilter(Event $event)
    {
      $this->getEventManager()->off($this->Csrf);
    }
Run Code Online (Sandbox Code Playgroud)

在AppController但它似乎不起作用.手动链接:禁用特定操作的CSRF组件

我做了很多测试,阅读了很多帖子,但我无法解决.

TY.

@omerowitz这是我在过滤操作之前的AppController:

    public function beforeFilter(Event $event)
{
    $this->getEventManager()->off($this->Security);
    if($this->request->is('post')) {
        $this->getEventManager()->off($this->Csrf);
    }
    $this->Auth->allow(['index', 'view', 'display']);
}
Run Code Online (Sandbox Code Playgroud)

但它仍然无效,我仍然有错误'CSRF令牌不匹配'.当我与邮递员提出请求时

解:

我删除了这个:

->add(new CsrfProtectionMiddleware([
     'httpOnly' => true
  ]));
Run Code Online (Sandbox Code Playgroud)

来自Application.php.为什么手册中没有说明这一点?

太棒了!

Dar*_*zak 5

我认为在Cake 3.6你应该CsrfProtectionMiddleware从中间件队列中删除: src/Application.php