Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel Cookie和html中的CSRF令牌不匹配_Laravel_Vue.js_Axios_Csrf Token - Fatal编程技术网

Laravel Cookie和html中的CSRF令牌不匹配

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 我添加了这个,这样我就可以设置

如何“正确”检索CSRF令牌

我正在尝试使用Axios登录我的Vue SPA

除了路由
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中。谢谢!