CakePHP 3 cors,X-CSRF-Token



我在为输入表单实现CSRFProtection时遇到了一些问题。 以下变量在 CSRFProtectionMiddleware.php 中始终为空:

$header = $request->getHeaderLine('X-CSRF-Token');

出于这个原因,我总是收到CSRF"令牌不匹配"错误消息。 问题出在:

$this->response->cors($this->request)->allowHeaders(['X-CSRF-Token']);

但我不知道我应该把它放在哪里,因为这里没有清楚地描述食谱:

https://book.cakephp.org/3.0/en/controllers/request-response.html#setting-cross-origin-request-headers-cors

你可以把它放在你的控制器中,但请参阅这个链接。 它那个页面,它被描述它应该是

$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();


希望对您有所帮助。

最新更新