У меня возникла проблема с внедрением CSRFProtection для моих форм ввода. следующая переменная в CSRFProtectionMiddleware.php всегда пуста:
$header = $request->getHeaderLine('X-CSRF-Token');
По этой причине я всегда получаю сообщение об ошибке CSRF 'token mismatch.'. Проблема будет в следующем:
$this->response->cors($this->request)->allowHeaders(['X-CSRF-Token']);
Но я не знаю, где мне его разместить, потому что в кулинарной книге это четко не описано здесь:





Вы можете поместить это в свой контроллер, но см. эта ссылка.
На этой странице описано, что это должен быть
.
$this->response = $this->response->cors($this->request)
->allowOrigin(['*.cakephp.org'])
->allowMethods(['GET', 'POST'])
->allowHeaders(['X-CSRF-Token'])
->allowCredentials()
->exposeHeaders(['Link'])
->maxAge(300)
->build();
а не просто
$this->response->cors($this->request)
->allowOrigin(['*.cakephp.org'])
->allowMethods(['GET', 'POST'])
->allowHeaders(['X-CSRF-Token'])
->allowCredentials()
->exposeHeaders(['Link'])
->maxAge(300)
->build();
Надеюсь, поможет.