Laravel 5.4 TokenMismatchException in VerifyCsrfToken.php 行



我知道这是这里最常问的问题之一,但我真的阅读了谷歌前 10 页结果中的所有内容,没有什么能解决我的问题。

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

TokenMismatchException in VerifyCsrfToken.php line 68

我正在 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

我真的被困在这个上面好几天了。没有更多的想法。

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

{!! csrf_field() !!}

或者,如果您在表单中使用输入标签,只需在<form>标签之后添加以下内容:

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

在您的.env文件中添加

SESSION_DOMAIN=yourdomain.com

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

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

最新更新