Может ли обнаружение TokenMismatchException выполняться с помощью блока try catch? Вместо отображения страницы отладки, которая показывает "TokenMismatchException в строке VerifyCsrfToken.php 46...", я хочу, чтобы она отображала фактическую страницу и просто отображала сообщение об ошибке.
У меня нет проблем с CSRF, я просто хочу, чтобы он все еще отображал страницу вместо страницы отладки.
Реплицировать (используя firefox): Шаги:
- Открыть страницу (http://example.com/login)
- Очистить файлы cookie (домен, путь, сеанс). Здесь я использую плагин панели инструментов веб-разработчиков.
- Отправить форму.
Фактические результаты: "Показывает, выглядит что-то не так". Ожидаемые результаты: покажите страницу входа в систему, затем передайте ошибку "несоответствие токена" или что-то еще.
Обратите внимание, что при очистке файлов cookie я не обновлял страницу, чтобы токен мог генерировать новый ключ и приводил к ошибке.
UPDATE (ADDED FORM):
<form class="form-horizontal" action="<?php echo route($formActionStoreUrl); ?>" method="post">
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>" />
<div class="form-group">
<label for="txtCode" class="col-sm-1 control-label">Code</label>
<div class="col-sm-11">
<input type="text" name="txtCode" id="txtCode" class="form-control" placeholder="Code" />
</div>
</div>
<div class="form-group">
<label for="txtDesc" class="col-sm-1 control-label">Description</label>
<div class="col-sm-11">
<input type="text" name="txtDesc" id="txtDesc" class="form-control" placeholder="Description" />
</div>
</div>
<div class="form-group">
<label for="cbxInactive" class="col-sm-1 control-label">Inactive</label>
<div class="col-sm-11">
<div class="checkbox">
<label>
<input type="checkbox" name="cbxInactive" id="cbxInactive" value="inactive" />
<span class="check"></span>
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-save fa-lg"></i> Save</button>
</div>
</div>
</form>
Ничего особенного здесь. Просто обычная форма. Как и то, что я сказал, форма РАБОТАЕТ отлично. Именно после того, как я изложил вышеописанные шаги, он ошибается из-за истечения срока действия TOKEN. Мой вопрос в том, должна ли форма вести себя так? Я имею в виду, когда я очищаю файлы cookie и сеанс, мне также нужно перезагрузить страницу? Так работает CSRF?