VerifyCsrfToken.php中的TokenMismatchException第67行laravel 5.2两者都不同

时间:2017-01-23 09:36:27

标签: laravel laravel-5.2

我调用Form ::打开它的工作并显示_token

{!! Form::open(['url' => URL::route('admin-login'), 'method' => 'post', 'class' => 'form-horizontal m-t-20']) !!}

<form method="POST" action="http://example.net/admin/login" accept-charset="UTF-8" class="form-horizontal m-t-20"><input name="_token" type="hidden" value="7ybw31c2ruMTjquv2lbyFAoIg1jBVySeQzBdrP">

session.php文件

return [

    'driver' => env('SESSION_DRIVER', 'file'),

    //'lifetime' => 120,
    'lifetime' => 120*30*24*10,
    //'lifetime' => 360,
    '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,
    'http_only' => true,
];

我只是转储会话令牌并形成令牌值。两个令牌都有不同的价值

此会话令牌在服务器中的每次刷新时都会更改,并在localhost中保持相同

protected function tokensMatch($request)
{
    $sessionToken = $request->session()->token();

    $token = $request->input('_token') ?: $request->header('X-CSRF-TOKEN');

    var_dump($sessionToken);
    var_dump($token,true); die;

    if (! $token && $header = $request->header('X-XSRF-TOKEN')) {
        $token = $this->encrypter->decrypt($header);
    }

    if (! is_string($sessionToken) || ! is_string($token)) {
        return false;
    }

    return hash_equals($sessionToken, $token);
}

VAR DUMP的结果

var_dump($sessionToken);
EQ0oX12dMLLvI86MIb385vJ3e3U1DaIWiUVpt7Zx


var_dump($token,true); 
7ybw31c2ruMTjquv2lbyFAoIg1jBVySeQzBdrP

以下步骤我已经尝试但问题未解决

此问题仅在服务器中发生,并且在localhost中正常工作

- 从本地上传完整项目到实时

- 存储/会话目录中的文件权限(工作正常并生成文件)

-Cleared artisan cache

并尝试了TokenMismatchException in VerifyCsrfToken.php Line 67

的步骤

来自的解决方案 TokenMismatchException in VerifyCsrfToken.php

解决方案:重启服务器后问题解决了。

0 个答案:

没有答案