VerifyCsrfToken.php第68行中的TokenMismatchException:Laravel 5.3

时间:2018-09-06 05:34:00

标签: php laravel laravel-5.3 csrf

我已经在网上寻找答案了3个小时,并且尝试了很多解决方案,但是没有用。 我尝试过:来自here

的答案

但是他们都不起作用

  

解决方案1:

sudo rm -rf storage/framework/sessions/*
sudo php artisan cache:clear
  

解决方案2:

在浏览器中清除缓存和cookie,然后运行

php artisan config:cachephp artisan cache:clear

  

解决方案编号3

enter image description here

  

解决方案编号4

enter image description here

  

5号解决方案

我尝试将{{ csrf_field() }}更改为{!! csrf_field() !!}

  

解决方案编号6

我尝试将Auth::routes();移到我的网络路线上方。

  

解决方案编号7

enter image description here

  

解决方案编号8

我从以下位置更改了代码

 <form class="form-horizontal" role="form" method="POST" action="{{ url('/login') }}">
   {{ csrf_field() }}

收件人:

 <div class="panel-body">
    {!! Form::open([ 'route' => 'login', 
                     'method' => 'POST' ]) !!}

我什至尝试在{{ csrf_field() }}中添加Form::open

我什至尝试添加另一个括号{{{ csrf_field() }}}

  

解决方案编号9

拼命重启我的服务器(MAMP),然后清除缓存

还有另一种解决方案,说我应该下载一个全新的Laravel安装,但是我不能这样做,因为这是一个很大的项目。


这是我的.env file

API_DEBUG=true
APP_ENV=local
APP_KEY=base64:g43UiAlu11L/y9ThUjiVqFi52/d2Jf/JHaPNwkwzU4o=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://127.0.0.1

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

SESSION_SECURE_COOKIE=true

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

PUSHER_APP_ID=
PUSHER_KEY=
PUSHER_SECRET=

API_PREFIX=api
API_SUBTYPE=app
API_VERSION=v1

JWT_TTL=20160

SIGN_UP_RELEASE_TOKEN=false
PASSWORD_RESET_RELEASE_TOKEN=false

PAGINATION_ITEMS_PER_PAGE=10

# Database Connections

DB_CONNECTION=mysql-core
DB_CORE_HOST=localhost:8889
DB_CORE_PORT=3306
DB_CORE_DATABASE=core
DB_CORE_USERNAME=root
DB_CORE_PASSWORD=root

我的Kernel.php

class Kernel extends HttpKernel
{
protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
];

/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'secure.requests',
    ],

在我的session.php

'driver' => env('SESSION_DRIVER', 'file'),
'files' => storage_path('framework/sessions'),
'domain' => env('SESSION_DOMAIN', null),
'secure' => env('SESSION_SECURE_COOKIE', false),

这是我的web.php

<?php

Route::group([ 'middleware'  => [ 'secure.requests' ] ], function() {

    Auth::routes();

    Route::get('/', function () {
        return view('welcome');
    });

});

我也在使用laravel dubugbar enter image description here

这是一篇很长的文章,但是我迫切希望能够解决这个问题。我希望有一个人可以帮助我。

  

编辑:我尝试从API端(本地)登录,并且可以正常运行。问题只是网络方面。

3 个答案:

答案 0 :(得分:0)

我曾经遇到过同样的问题,请尝试从项目目录运行以下命令:

chmod 777存储/框架/会话/

我希望它对您有用!

答案 1 :(得分:0)

尝试一下

delegate()

{{ csrf_field() }}

答案 2 :(得分:0)

我从这里找到了以下步骤:

1)。从您的.env中删除“ SESSION_DRIVER”字段  2)。转到您的config / session.php并在域中标记env()的第二个参数     无效,即

'domain'=> env('SESSION_DOMAIN',null)

3)。运行php artisan cache:config和php artisan cache:clear   4)。重新启动服务器并清除浏览器缓存,whoaa可能就是所有   现在启动并运行。