#laravel 419 ошибка появляется при отправке любой формы эта проблема только на хостинге GoDaddy, на другом хостинге работает нормально - PullRequest
0 голосов
/ 12 мая 2019

вот образец ошибки 419, с которой я столкнулся

  • войти в приложение
  • выйти
  • снова войти
  • снова выйти 419появляется ошибка

после входа в систему, когда я нажимаю на любую ссылку (этот маршрут вызова), появляется 419, особенно, когда я пытаюсь удалить любую запись, эта ошибка появляется, согласно моему обнаружению во время этой ошибки, я понимаю, чтов каждом хранилище токенов отправки формы в сеансе обновляется, но токен, который передается как скрытое поле в запросе отправки формы, не обновляется, что является причиной несоответствия токена

что я сделал, чтобы выяснить эту проблему? В настоящее время я использую laravel 5.7.28 версия , я пытался с тем же приложением на другом приложении общего хостинга работать нормально.Я столкнулся с 419 только на хостинге GoDaddy. Вот шаг, который я выполняю, чтобы выяснить проблему, но не получаю плодотворного результата

1.

Я комментирую

    //      \App\Http\Middleware\VerifyCsrfToken::class,

из kernel.php 419 ошибка исчезает, но, делая это после входа в систему, когда я нажимаю на любую ссылку, которую я перенаправляю на экран входа в систему, значит сказать, сеанс уничтожен

2.

Я также регенерирую приложениеключ

    APP_KEY=base64:8NYbcWPkEaj5oVHEGBWxCaFVHQhkgA/OOZyFPBiDMYQ=

3.

в файле session.php

    'http_only' => false,

4.

сеанс правильно записывается в хранилище / framework /session.php и я назначаю разрешения 777

5.

введите код

, затем я пытаюсь отладить сеанс вручную

    vendor/laravel/framework/src/Illuminate\Foundation\Http\Middleware

<code>
    public function handle($request, Closure $next)
        {

     echo "<pre>";
            print_r($this->getTokenFromRequest($request));
            echo "
"; echo"
";
            print_r($request->session()->token());
     echo "
"; die () if ($ this-> isReading ($ request) || $ this-> runningUnitTests () || $ this-> inExceptArray ($ request) || $ this-> tokensMatch ($ request)) {return tap ($ next ($ request), функция ($ response) use ($ request) {if ($ this-> shouldAddXsrfTokenCookie ()) {$ this-> addCookieToResponse ($ request, $ res)Понс);}});} бросить новое TokenMismatchException;}

Хранилище токенов csrf в сеансе и обновляется при каждой отправке формы


    $request->session()->token();

, но хранилище токенов в запросе отправки формы $ остается неизменным /static не меняет / обновляет


    $this->getTokenFromRequest($request);

, что фактически является причиной несоответствия токена, который выдает исключение в виде ошибки 419

6.


правильно использовать токен @scrf в каждой форме, и я также заменяю {{csrf_filed ()}}


7.

и запускаю команду обновления композитора

8.

запустить приложение в другом браузере

9.

Комментарий

    //\App\Http\Middleware\VerifyCsrfToken::class in \app\Http\Kernel.php

, пока я фиксирую файл 419, исчезаютно когда я нажимаю на любой сеанс связи, уничтоженный, выходит из системы и я возвращаюсь на страницу входа. Комментарий 10 *

     //\Illuminate\Session\Middleware\AuthenticateSession::class 

в


\app\Http\Kernel.php

.env код файла


    APP_NAME=Laravel
    APP_ENV=local
    APP_KEY=base64:8NYbcWPkEaj5oVHEGBWxCaFVsQhkgA/OOZyFPBiDMYQ=
    APP_DEBUG=true
    APP_URL=http://localhost

    LOG_CHANNEL=stack

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=ltcsar
    DB_USERNAME=root
    DB_PASSWORD=

    BROADCAST_DRIVER=log
    CACHE_DRIVER=file
    QUEUE_CONNECTION=sync
    SESSION_DRIVER=file
    SESSION_LIFETIME=120

    REDIS_HOST=127.0.0.1
    REDIS_PASSWORD=null
    REDIS_PORT=6379+

    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.mailtrap.io
    MAIL_PORT=2525
    MAIL_USERNAME=null
    MAIL_PASSWORD=null
    MAIL_ENCRYPTION=null

    PUSHER_APP_ID=
    PUSHER_APP_KEY=
    PUSHER_APP_SECRET=
    PUSHER_APP_CLUSTER=mt1

    MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
    MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

1 Ответ

0 голосов
/ 12 мая 2019

Я столкнулся с той же проблемой, это проблема с laravel 5.7.2, я установил framework v 5.7.9, проблема исчезнет.

...