如何“正确”检索 CSRF 令牌?
我正在尝试使用 Axios 登录我的 Vue SPA。
我将所有内容都更改为 Vue 组件,Auth::routes();
除了php artisan ui:auth
. 因此,我不能再@csrf
在我的表单上使用,必须通过 axios 的标头发送 csrf 令牌。我已经尝试了几乎所有的 2 天,直到我注意到 Laravel 给我的 cookie 的 XSRF TOKEN 与我在 HTML 中得到的不同......请参阅下面的照片。
这来自开发人员工具。
app.blade.php
我添加了这个,以便我可以设置检索 CSRF 令牌并将其附加到 axios 标头。
在 console.log() 上,我看到了一个不同的令牌。
我在 console.log() 时得到的令牌:o3nQRW6IqiKdNGOdiHc59pYXXD3sBw8YfbpCPvf7
为什么不直接从 cookie 中获取 CSRF 令牌然后使用document.cookie
?,同样的事情。每当我使用 console.log() 时它都不匹配。
这绝对是无论我做什么,我总是收到 419 错误 CSRF 令牌不匹配的原因。这可能是什么原因造成的?
注意:我只Auth::routes()
在api.php
文件中使用。什么都没有web.php
。奇怪的是,我能够注册一次用户,但由于同样的问题,我再也没有注册过。