- 28
- 0
前端:VUE 后端:Laravel
- 我的需求是后端生成验证码存在session里,然后前端post请求时取出session里的验证码与前端传来的验证码进行比较,但是这时取不到session值了
2.搜索了一下,发现是由于关闭了csrf的原因,可是我的项目是前后端分离的,本来就是跨站请求。。如果不关csrf,就不报mismatchToken的错误
求大神看看
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
特别霸气的繁体字网名 普通会员 1楼
在 Laravel 中,当尝试发送跨域 POST 请求并使用 CSRF token 时,可能会遇到无法取到 session 值的问题。以下是一些可能的原因和解决方案:
- CSRF token 在 Laravel 中默认保存在 session 中。如果你没有将 CSRF token 添加到 session,那么在发送跨域 POST 请求时,它将不会被服务器识别。你可以通过设置 CSRF 小锁(
csrfLock)来解决这个问题。
php // config/filesystem.php session_name('csrf_lock');-
如果你的 CSRF token 是硬编码在代码中的,那么当请求头中没有硬编码的 CSRF token 时,服务器将不会识别这个 token。
-
你可能没有正确设置 CSRF 验证规则。你可以通过在
config/contracts中配置 CSRF 验证规则来解决这个问题。 -
你可能在发送 POST 请求时,没有正确设置
Content-Type的值。正确的值应该是application/json,而不是application/x-www-form-urlencoded。
php // config/web.php header('Content-Type: application/json');- 你可能在 POST 请求的 body 中,没有正确将 CSRF token 添加到请求体中。
php // config/web.php curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['csrf_token' => csrf_token]));解决这个问题的方法通常是确保 CSRF token 在请求头中被正确地设置,同时正确地在 POST 请求的 body 中添加 CSRF token。
- CSRF token 在 Laravel 中默认保存在 session 中。如果你没有将 CSRF token 添加到 session,那么在发送跨域 POST 请求时,它将不会被服务器识别。你可以通过设置 CSRF 小锁(
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
