【问题标题】:Laravel 5.3 - TokenMissmatchException in VerifyCsrfToken.phpLaravel 5.3 - VerifyCsrfToken.php 中的 TokenMissmatchException
【发布时间】:2017-06-12 23:21:11
【问题描述】:

我在 Laravel 中的登录页面有问题。当我运行我的项目php artisan serve 时,我已经成功登录localhost:8000/login

但是,如果我调用 localhost/project/login,我会在 VerifyCsrfToken.php 中得到一个 TokenMismatchException。

我的登录表单如下所示。

<head>
    <meta name="csrf-token" content="{{ csrf_token() }}">
    ...
</head>

<body>
    <form method="post" action="{{ url('/login') }}">
        {!! csrf_field() !!}
        ...
    </form>
</body>

我该如何解决这个问题?谢谢。

【问题讨论】:

  • 你能分享你文件的sn-ps吗?而且,您是从 JS 发出登录请求吗?如果没有,则不需要 meta csrf-token
  • 我添加了sn-p。我在表格上发布请求。
  • 运行php artisan config:cache。或检查您的 php 版本。如果你运行php artisan serve,它将运行 php-cli 版本。如果您从 apache 运行,请创建一个文件 info.php 并添加此行,请检查 phpinfo();
  • @vũ-tuấn-anh 谢谢,但它不起作用。
  • 其实php artisan serve命令和你的apache没什么区别。只检查 php 版本并确保 YOU NOT INSTALL MULTI PHP VERSIONS。正如我所说,php artisan 将从路径环境获取的 php 二进制文件中运行。但 apache 可能不同。

标签: php laravel csrf laravel-5.3


【解决方案1】:

我再次自己回答了这个问题。我希望这可以帮助别人。导致问题的原因是 Session。通过将配置驱动程序从文件更改为数据库解决了该问题。

编辑:

php artisan session:table

php artisan migrate

.env 文件设置为:

SESSION_DRIVER=database

当我将会话驱动程序设置为文件时,我无法解决此问题。可能是权限有问题。我没有付出太多努力。我这样做了,它被修复了。

【讨论】:

  • 你能分享一下解决方案吗?我无法进入它。谢谢
猜你喜欢
  • 2017-02-21
  • 2019-02-11
  • 2014-10-26
  • 2015-03-11
  • 2018-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多