php - 如何解决 Laravel 中的 "CSRF Token Mismatch"

标签 php laravel csrf

我正在开发一个 Laravel 应用程序。在我的域上托管它时,我遇到了“CSRF token 不匹配”错误。在本地,应用程序运行良好,因为我已在 header 中包含 csrf token ,如文档中所示。因此,csrf token 正在成功生成并包含在请求的 header 中。在进行一些调试时,我更改了 SESSION_DRIVER在 env 文件中添加到 file这样我就可以看到 session 了。我意识到正在为一个用户生成多个 session 。 SESSION_LIFETIME设置为 120 ,我认为没问题。查看存储在 storage/framework/sessions 中的 session 中的 token , none 包含浏览器生成的 token 。可能是什么问题?请记住,它在本地运行良好。主机域上的哪些配置可能会影响应用程序的 session 。

最佳答案

我曾经在 cPanel 中托管时遇到过同样的错误,并花了我将近 3 天的时间来找出我的案例的解决方案。
我不知道这是否适合你,但试一试。
在公共(public)文件夹内的主 index.php 文件中,编辑它并在最顶部写入
ob_start()
此函数将获取输出缓冲区的内容并返回一个字符串,该字符串将发送到浏览器进行渲染,并删除您在启动 php 之前放置的空格或换行符。
还可以尝试按照评论中的建议清除缓存。
如果这对您也有帮助,请告诉我。

关于php - 如何解决 Laravel 中的 "CSRF Token Mismatch",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62967224/

相关文章:

php - 有什么方法可以检查匿名函数吗?

php - 总结 Laravel 集合中所有 "amount"字段

php - 拉维尔 4 : Deploy custom artisan command in package

node.js - 用于 Express/Connect 的 Ajax 兼容中间件

php - Composer 优化级别 1

PHP:对象上的递归htmlspecialchars

php - Magento Cron 作业/bin/bash : php7: command not found

Laravel - 使用从中间件组返回的值作为全局变量

java - Spring Boot 不需要 CSRF token

ruby - 如何让 Sinatra 使用 CSRF 真实性 token ?