Live Live服务器Larael 5.1上的VerifyCsrfToken.php第53行中的TokenMismatchException

时间:2016-05-07 03:25:04

标签: php laravel session laravel-5.1

我正在使用Laravel 5.1它完全适用于localhost。但是当我尝试登录时,它会返回错误,

TokenMismatchException in VerifyCsrfToken.php line 53:

通过在CSRF中对'App\Http\Middleware\VerifyCsrfToken',进行评论来删除app/Http/Kernal.php令牌。但在此之后,它会在没有会话的情况下重定向到登录页面。

我还检查了config/session.php

// session.php

<?php

return [
    'driver' => env('SESSION_DRIVER', 'file'),
    'lifetime' => 120,
    'expire_on_close' => false,
    'encrypt' => false,
    'files' => storage_path('framework/sessions'),
    'connection' => null,
    'table' => 'sessions',
    'lottery' => [2, 100],
    'cookie' => 'laravel_session',
    'path' => '/',
    'domain' => null,
    'secure' => false,
];

storageautoload文件夹也是可写的。

任何想法?

3 个答案:

答案 0 :(得分:0)

如果您使用的是ajax,请查看有关csrf_field令牌设置的手册:

https://laravel.com/docs/5.4/csrf#csrf-x-csrf-token

答案 1 :(得分:0)

由于许多问题,可能会产生此错误。

到目前为止,我只发现了3例:

  1. 输入表单的内容类型无效。
  2. 外部(来自外部)数据库更改
  3. 缺少CSRF令牌输入。
  4. 可能的解决方案是:

      

    更改表单的内容类型

         

    刷新迁移(或以某种方式处理DB表值以实现)和

         

    包含csrf令牌。

    这是我在Laravel v5.2中的经验,你可能有不同的原因。

答案 2 :(得分:0)

在视图的登录表单中添加以下内容:

@csrf