вот образец ошибки 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}"