Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 09.07.2019 16:07:58

Ошибка 419 при любых настройках сессии и формы

Всем привет.
Проблема такая
У меня при отправке формы ошибка 419 page expired.
Перелопатив всё, что нашел в гугле, я пробовал делать следующее:

  • Проставлять права на запись в папке storage (файлы создаются при каждом обновлении страницы новые)

  • Переключился на хранение в БД (новые строки создаются)

  • Прописывал в форме так: @csrf

  • Прописывал в форме так:  <input type="hidden" name="_token" value="{{ csrf_token() }}">

  • чистил кэши, пересобирал проект после удаления папки "vendor"

Ничего из этого не помогло. Единственным выходом было отрубить эту проверку csrf токена.
Сайт вертится на open server. Laravel 5.8 самая свежая.
Повторюсь, что всё работает, если вырубить проверку токена. МОжет надо что-то с сервером делать?
Код роута:

Route::resource('/admin/regions', 'Admin\RegionsController');

В форме:

<form action="{{route('regions.store')}}" method="post">
   @csrf
   <div class="form-group">
      <label for="title">Название</label>
      <input type="text" class="form-control" id="title" name="title" placeholder="">
   </div>
.
.
.
</form>

Не в сети

#2 09.07.2019 16:50:23

Re: Ошибка 419 при любых настройках сессии и формы

Напиши так
@csrf
@method('post')

Не в сети

#3 09.07.2019 17:59:28

Re: Ошибка 419 при любых настройках сессии и формы

Не помогло, всё так же 419

Не в сети

#4 11.07.2019 13:55:31

Re: Ошибка 419 при любых настройках сессии и формы

Эту проблему смог решить переносом в файле app/Http/Kernel.php вызова класса \Illuminate\Session\Middleware\StartSession::class из группы $middlewareGroups в глобальную группу $middleware :

protected $middleware = [
        ...
        \Illuminate\Session\Middleware\StartSession::class,
    ];

Это, также, решает проблему с выводом ошибок в формах.

Изменено Evgenium127 (11.07.2019 14:46:00)

Не в сети

#5 11.07.2019 15:19:00

Re: Ошибка 419 при любых настройках сессии и формы

Если все делать правильно, никаких ошибок отправки форм не будет, даже без переноса указанного файла. Где-то есть косяк, ищи.

Не в сети

#6 28.02.2020 14:56:26

Re: Ошибка 419 при любых настройках сессии и формы

Посмотри, какие у тебя прописаны допустимые методы для которых не проверятся наличие csrf в Illuminate\Foundation\Http\Middleware. Должно быть так:

  protected function isReading($request)
    {
        return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']);
    }

Не в сети

#7 01.03.2020 09:58:17

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Re: Ошибка 419 при любых настройках сессии и формы

Было такое один раз. В моем случае это решилось очисткой кук.

Не в сети

#8 14.05.2020 22:25:36

Re: Ошибка 419 при любых настройках сессии и формы

в файле VerifyCsrfToken.php добавь свое исключение в массив $except = [ 'api/*'];

Не в сети

#9 20.05.2020 13:27:07

Re: Ошибка 419 при любых настройках сессии и формы

просто напиши вместо @csrf {{csrf_field()}}

Не в сети

#10 27.01.2021 11:17:32

Re: Ошибка 419 при любых настройках сессии и формы

Попробуйте в web.php вставить вот такой роутинг

Route::get('/token', function (Request $request) {
    $token = $request->session()->token();

    $token = csrf_token();
});
документация по csrf lara 8.x

Изменено RussianGrizzly (27.01.2021 11:22:18)

Не в сети

Подвал раздела