【问题标题】:Laravel 5.4 Token Mismatch Exception on live server实时服务器上的 Laravel 5.4 令牌不匹配异常
【发布时间】:2017-09-18 12:52:54
【问题描述】:

我在实时服务器上的 Laravel 5.4 中面临令牌不匹配异常。在我运行 Windows XAMPP 的本地计算机上,该应用程序运行良好。当我将它部署到运行 CENTOS 7 和 LAMP 堆栈的实时机器上时,我在浏览器的左上角看到重定向到 myhostname.com/login,然后出现一个错误页面,显示:

VerifyCsrfToken.php 第 68 行的令牌不匹配异常。

【问题讨论】:

  • 只需清除会话文件夹,复制服务器时旧会话仍然存在。还要在你的服务器上做一个 php artisan config:clear

标签: laravel redirect token centos7 mismatch


【解决方案1】:

我遇到了同样的问题,我所做的是:

首先在您的 .env 文件中删除:SESSION_DOMAIN 在设置会话驱动程序中,例如:SESSION_DRIVER=file(如果您希望将其保存到文件中)

然后执行:php artisan cache:clear 然后`php artisan config:clear

这对我有用。

【讨论】:

  • 我试过这个,但它对我不起作用。尽管我已将此视为答案,但不知道为什么它对我不起作用。我将相同的代码移到另一台服务器上,一切正常。
  • 在您的页面中添加{{ csrf_token }} 然后检查页面的源代码以查看每次重新加载页面时crsf_token是否会自动更改。如果是,则与您的会话域有关,但如果不是,则与您的代码有关。
  • 我禁用了 CSRF 中间件来追踪错误,但最终注意到登录的用户没有被添加到会话中。
  • 开启CSRF中间件,试试上面的方法看看问题。
【解决方案2】:

尝试清除服务器上的配置缓存:

artisan cache:config

如果您出于某种原因编辑了config/app.php,您也需要清除配置缓存。

此外,还有一个可能的原因:在将应用程序部署到生产环境时,您不仅复制了应用程序,还复制了缓存/会话文件。基本上存储文件夹中的所有内容在部署时都应该被忽略。

【讨论】:

    【解决方案3】:
    1. 运行此命令
    php artisan config:clear
    
    1. 验证 .env 文件

    删除当前的.env文件并从.env.example创建新的.env文件

    1. 验证 config/session.php 是否正确或未修改。

    2. 也可以查看存储目录的文件权限

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-24
      • 2016-12-06
      • 1970-01-01
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      相关资源
      最近更新 更多