【问题标题】:Laravel TokenMismatchException after changing session driver更改会话驱动程序后的 Laravel TokenMismatchException
【发布时间】:2016-12-15 10:56:58
【问题描述】:

我将 laravel 会话驱动程序更改为数据库。 我更改了 session.php 文件和 ENV 文件以反映数据库。 我没有定义连接并将其默认保留在 session.php 文件中。

我通过 php artisan 命令创建了会话表,进行了迁移。

我现在每次提交表单时都会遇到“VerifyCsrfToken.php 第 67 行中的 TokenMismatchException:”错误。 如果我恢复到“文件”,它就会恢复正常。

我已经清除了 artisan 缓存清除,浏览器历史记录也清除了。

使用 laravel 5.2。

非常感谢任何帮助。

【问题讨论】:

  • 是否有任何标记添加到您的数据库表中?
  • @FrankProvost 有效载荷列有值。但 user_id 列为空
  • 您是否使用 php artisan session:table 创建了会话 dable?确保你在那之后调用了 composer dump-autoload
  • 是的。知道为什么会这样吗?当我切换回文件驱动程序时就可以了。我切换到数据库的主要原因是几分钟后用户会自动注销。我的会话过期设置为默认值 120 分钟。
  • 遗憾的是,我不知道为什么会这样。但是,我认为您也可以在文件/cookies 中处理会话过期。

标签: database session laravel-5


【解决方案1】:

发生这种情况的一个原因是,如果您手动创建了会话表,并且错误地将 id 列设置为 bigint(20) 类型或任何其他不匹配的列。 在这里查看我的详细答案https://stackoverflow.com/a/45340647/7260022

【讨论】:

    猜你喜欢
    • 2013-06-08
    • 2021-12-01
    • 2017-06-02
    • 2015-02-24
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    相关资源
    最近更新 更多