Срок действия страницы истек из-за неактивности. Зачем? - PullRequest
0 голосов
/ 05 июля 2018

У меня проблема. У меня 2 компьютера, первый - Ubuntu, а второй - Windows 10. Оба компьютера имеют комплект Vagrant + VirtualBox + Homestead. На компьютере с Ubuntu все работает нормально, а на компьютере с Windows 10, когда я пытаюсь отправить форму на сервер, я получаю статус 419 и сообщение:

Срок действия страницы истек из-за неактивности. Пожалуйста, обновите и попробуйте снова.

Токен CSRF обновляется при каждом обновлении страницы. Это чистая установка Laravel + php artisan make: auth и php artisan migrate (таблицы по умолчанию) в чистой среде Homestead на обоих ПК. Права на каталог сеанса полны, пользователь бродит, группа бродит. Файл сеанса создан. .env файлы идентичны (стандартные), за исключением имени базы данных. В чем может быть проблема? Мне очень нужна твоя помощь!

Все советы по аналогичной проблеме мне не помогли. Просмотр кеша, конфигурации и т. Д. Я почистил, ключ сгенерирован заново. Кэш браузера был очищен, куки проверены - на месте. Единственная разница между двумя компьютерами - это операционная система, но имеет ли значение, когда Laravel работает на виртуальной машине Homestead?

Ответы [ 2 ]

0 голосов
/ 05 августа 2018
  • Добавить запись маршрута в app / Http / Middleware / VerifyCsrfToken.php

защищенный $ кроме = [ «Ваш / маршрут» ];

Если вы уже включили токен CSRF в вашу форму. Затем вы получаете страницу с ошибкой, возможно, из-за данных кеша в вашей форме. Откройте терминал / командную строку и выполните эти команды в корне проекта.

  1. php кэш ремесленника: очистить
  2. php artisan config: clear
  3. php artisan route: clear
  4. php artisan view: clear

Также попробуйте очистить кэш браузера вместе с выполнением этих команд.

  • Убедитесь, что значение безопасности сеанса в файле app / config / session.php равно нулю.

    'secure' => env ('SESSION_SECURE_COOKIE', false),

0 голосов
/ 06 июля 2018

Из вашего видео измените APP_NAME в вашем .env файле на что-то отличное от "Laravel".

Могу поспорить, у вас есть другие сайты, работающие по тому же локальному URL с тем же APP_NAME.

При изменении APP_NAME имя файла cookie сеанса изменяется в config / sessions.php

'cookie' => env(
    'SESSION_COOKIE',
    str_slug(env('APP_NAME', 'laravel'), '_').'_session'
),

Вы можете вручную переопределить имя файла cookie, установив переменную SESSION_COOKIE в своем файле .env ИЛИ оставив для него запасной вариант с вычисленным значением выше, которое использует имя приложения (2-й параметр).

Google Chrome - единственный браузер, в котором это происходит по некоторым причинам. Я потратил почти год, пытаясь решить эту проблему, и это было решением!

...