我在为输入表单实现CSRFProtection时遇到了一些问题。 CSRFProtectionMiddleware.php中的以下变量始终为空:
$header = $request->getHeaderLine('X-CSRF-Token');
出于这个原因,我总是得到CSRF'令牌不匹配。'错误消息。 问题出在:
$this->response->cors($this->request)->allowHeaders(['X-CSRF-Token']);
但是我不知道我应该把它放在哪里,因为在这里没有清楚地描述食谱:
答案 0 :(得分:0)
您可以将其放入控制器中,但请参阅this link。
在该页面上,描述应为
$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();
希望对您有帮助。