【问题标题】:Laravel 5.4 TokenMismatchException in VerifyCsrfToken.php line 68 on some device某些设备上的 VerifyCsrfToken.php 第 68 行中的 Laravel 5.4 TokenMismatchException
【发布时间】:2017-08-26 15:46:24
【问题描述】:

我知道这是这里被问到最多的问题之一,但我确实阅读了谷歌前 10 页结果中的所有内容,但没有解决我的问题。

在 laravel 5.4 的 全新安装 上,当我尝试注册(或登录)时,通过 php artisan make:auth 生成了身份验证控制器、视图等某些设备我收到以下错误:

VerifyCsrfToken.php 第 68 行中的 TokenMismatchException

我在 debian 8.7 和 php7 上本地运行此应用程序(它可能与问题有关吗?) 在我的电脑、iphone 7、另一个 Windows 10 桌面上它运行良好,但在华为 p8 lite、ipad 2 和 lubuntu(相当旧的版本)上我得到了这个错误。所以这真的很奇怪,因为它只是发生在某些设备上(不管是什么操作系统,不管是什么浏览器)。

我已经可以告诉你,我尝试授予会话文件夹权限,更改 session_domain,清除缓存(但正如我所说,我在全新安装上尝试此操作),将 {{ csrf_token }} 更改为 {!! csrf_token !!} 等

只是为了给你更多关于我的系统的信息,这是我正在使用的 php 版本:

php --version
PHP 7.0.17-1~dotdeb+8.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.17-1~dotdeb+8.1, Copyright (c) 1999-2017, by Zend 
Technologies

我真的坚持了好几天。没有更多的想法。

【问题讨论】:

  • 我认为您已经从 session.php 配置文件中更改了 cookie 域。

标签: php laravel laravel-5 php-7


【解决方案1】:

我假设你添加了 $this->middleware('auth');在控制器的构造函数中以使身份验证正常工作。如果您使用的是 {!!表单::someElement !!}:

{!! csrf_field() !!}

或者,如果您在表单中使用输入标签,只需将其添加到 <form> 标签之后:

<input type="hidden" name="_token" value="{{ csrf_token() }}">

【讨论】:

  • 我通过 artisan 命令 (php artisan make:auth) 创建了控制器和视图,所以一切都是自动生成的。正如我所说,更多人认为它在某些设备中运行良好。它只是发生在某些设备上。
  • 我在 debian 8.7 和 php7 上本地运行这个应用程序(它可能与问题有关吗?)在我的电脑、iphone 7、另一个 windows 10 桌面上它工作得很好,但是在华为 p8 lite、ipad 2 和 lubuntu(相当旧的版本)上我得到了那个错误。所以这真的很奇怪,因为它只是发生在某些设备上(不管是什么操作系统,不管是什么浏览器)。我在问题中写了它。它也不适用于带有 linux 的电脑......所以我真的在黑暗中摸索
  • 好的。它在 linux 中你想要更改文件夹权限并使用 php artisan serve 运行它
  • 我已经这样做了(设置为 777)并且没有任何改变。同样的问题。考虑到我在 debian linux 上运行它并且它工作正常,从另一台电脑上它没有(我通过 ip:8000 连接,因为我是从本地 debian 运行它)
  • 我已经安装了 laravel 5.4 并且一切正常,为什么还要按照 laravel 5.0 的教程进行操作..
【解决方案2】:

在您的 .env 文件中添加

SESSION_DOMAIN=yourdomain.com

【讨论】:

    【解决方案3】:

    我有同样的问题。我做了这些步骤。

    1. php artisan cache:clear //cache clear
    2. <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>"> //place inside the form tags

    【讨论】:

      猜你喜欢
      • 2017-07-29
      • 2017-02-21
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-20
      • 1970-01-01
      相关资源
      最近更新 更多