Ошибка несоответствия токена Laravel после очистки кэша - PullRequest
0 голосов
/ 12 июня 2018

Я использую Laravel 5.4 версии

Что я могу спросить, когда я очищаю кеш браузера и пытаюсь войти в систему на этот раз, возвращая мне ошибку типа

TokenMismatchException in VerifyCsrfToken.php line 68:

, но когда яобновите его снова и войдите в систему, войдя в систему успешно, но всякий раз, когда я очищаю кеш браузера и пытаюсь войти в систему все время, он возвращает мне ошибку.Может ли кто-нибудь помочь мне с этим?

код, который у меня есть в v\VerifyCsrfToken.php:

public function handle($request, Closure $next)
{
    if (
        $this->isReading($request) ||
        $this->runningUnitTests() ||
        $this->shouldPassThrough($request) ||
        $this->tokensMatch($request)
    ) {
        return $this->addCookieToResponse($request, $next($request));
    }

    throw new TokenMismatchException;
}

, но когда я использую этот код вместо laravel по умолчанию:

public function handle($request, Closure $next)
{
    $response = $next($request);

    if (last(explode('\\',get_class($response))) != 'RedirectResponse') {
        $response->header('P3P', 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
    }

    return $response; 
}

Работает нормально, значит, после очистки кэша, я могу войти в систему, не выдавая ошибку несоответствия токенов.

Мой вопрос: я не хочу менять код laravel по умолчанию, так что есть ли другой способ?решить это?

1 Ответ

0 голосов
/ 12 июня 2018

В приложении / Http / Middleware / VerifyCsrfToken.php,

class VerifyCsrfToken extends Middleware
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        //
    ];
}

добавьте выход в этот массив:

    protected $except = [
    '/logout'
];

Надеюсь, что это разрешит исключение несоответствия токена.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...