Моя страница регистрации правильно показывает форму с помощью CsrfToken ( {{ csrf_field() }}
), присутствующей в форме).
Форма HTML
<form class="form-horizontal registration-form" novalidate method="POST" action="{{ route('register') }}"> {{ csrf_field() }} .... </form>
Я использую встроенную аутентификацию для пользователей. Ничего не изменил, кроме маршрутов и перенаправлений.
Когда я отправляю форму (сразу после перезагрузки), она дает, что страница истекло из-за неактивности. Обновите и повторите попытку. ошибка.
Мое, я скучаю по очень маленькой вещи. Но не уверен, что это такое. Любая помощь?
Обновить
Нашел вопрос. Драйвер сеанса был настроен на массив. Изменен файл, и ошибка исчезла. Но что не так, если я использую массив?
Может иметь какое-то отношение к тому, что storage_path не доступен для записи. Здесь хранятся данные сеанса относительно токенов, если вы используете сеансы на основе файлов.
Как указано в комментариях, драйвер сеанса был настроен на массив. Массив предназначен только для тестирования. Поскольку данные не сохраняются, он не сможет сравнить токен при следующем запросе.
Драйвер массива используется во время тестирования и предотвращает сохранение сохраненных в сеансе данных.
https://laravel.com/docs/5.5/session#configuration
Если вы придете к этому ответу непосредственно из поиска, убедитесь, что вы уже добавили токен csrf в свою форму с {{ csrf_field() }}
как OP.
Я столкнулся с тем же вопросом в Laravel 5.5. В моем случае это произошло после изменения маршрута с GET на POST. Проблема была в том, что я забыл передать токен CSRF, когда я переключился на POST.
Вы можете опубликовать токен CSRF в своей форме, вызвав:
{{ csrf_field() }}
Или исключить свой маршрут в приложении / Http / Middleware / VerifyCsrfToken.php
protected $except = [ 'your/route' ];
Попробуйте все.
composer dump-autoload php artisan optimize php artisan cache:clear php artisan config:clear php artisan route:clear php artisan view:clear
Некоторая информация хранится в файле cookie, который связан с предыдущими версиями laravel в разработке. Таким образом, это противоречит созданным csrf токенам, которые генерируются чужими версиями. Просто очистите файл cookie и попробуйте.
Это вызвано тем, что Illuminate\Session\TokenMismatchException
просмотрите этот пример кода, как правильно его обрабатывать:
Убедитесь, что на вашем веб-сервере правильное системное время. В моем случае бродячая машина была в будущем (26 января 14:08:26 UTC 2226), поэтому, конечно, время в cookie сессии моего браузера истекло около 200 лет назад 😉
У вас должен быть тип файла
FileName.blade.php в laravel
FileName.erb.rb в Ruby и Rails
и добавить любой
1) {{csrf_token ()}}
2) <input type="hidden" name="_token" value="{{ csrf_token() }}" >
3) <meta name="csrf-token" content="{{ csrf_token() }}">