Laravel Cookie和html中的CSRF令牌不匹配
如何“正确”检索CSRF令牌 我正在尝试使用Axios登录我的Vue SPA 除了路由Laravel Cookie和html中的CSRF令牌不匹配,laravel,vue.js,axios,csrf-token,Laravel,Vue.js,Axios,Csrf Token,如何“正确”检索CSRF令牌 我正在尝试使用Axios登录我的Vue SPA 除了路由Auth::Routes(),我将所有内容都更改为Vue组件由php artisan ui:auth生成。因此,我不能再在我的表单上使用@csrf,必须通过axios的头发送csrf令牌。我已经尝试了几乎所有的东西两天了,直到我注意到Laravel给我的cookies的XSRF令牌与我在HTML中得到的不同。。。请参考下面的照片 这来自开发人员工具 app.blade.php 我添加了这个,这样我就可以设置
Auth::Routes(),我将所有内容都更改为Vue组件代码>由php artisan ui:auth生成。因此,我不能再在我的表单上使用@csrf
,必须通过axios的头发送csrf令牌。我已经尝试了几乎所有的东西两天了,直到我注意到Laravel给我的cookies的XSRF令牌与我在HTML中得到的不同。。。请参考下面的照片
这来自开发人员工具
app.blade.php
我添加了这个,这样我就可以设置检索CSRF令牌并将其附加到axios头
在console.log()上,我看到一个不同的令牌。
我在console.log()时获得的令牌:o3nQRW6IqiKdNGOdiHc59pYXXD3sBw8YfbpCPvf7
为什么不直接从cookie中获取CSRF令牌,然后使用document.cookie
?,同样的事情。每当我运行console.log()时,它都不匹配
这就是为什么无论我做什么,我总是得到一个419错误CSRF令牌不匹配的原因。这可能是什么原因造成的
注意:我只使用了api.php
文件中的Auth::routes()
。web.php
中没有任何内容。奇怪的是,我能够注册一个用户一次,但由于同样的问题,我再也没有注册过 目前很难说,但希望这有助于:
您的水疗中心是否在您的Laravel应用程序之外?然后我建议使用新的Laravel Airlock软件包为您处理CSRF代币。更多信息可在此处找到:
拉维尔气闸更名为圣殿:
如果您的SPA位于Laravel应用程序中,请查看您的axios配置(如果它在标题中使用X-CSRF-Token)。更多信息可在此处找到:Q:您的SPA是否在您的Laravel应用程序之外?答:我不知道该怎么回答,但我想不会。水疗中心在拉拉维尔。我将vue文件放在/resources/js/components
中,将vue根实例放在app.js
中,尽管文档中说默认情况下Axios的头上已经配置了CSRF令牌。我仍然继续使用许多解决方案,将
的内容附加到标题。我想知道我在连接axios时是否犯了错误。顺便说一句,我正在配置我在bootstrap.js
file.Airlock中找到的axios。我会尝试将它整合到我的SPA中。谢谢!