Я обновляю сайт Laravel 5.1 до Laravel 5.2.39. У меня было много проблем с «одобренным» процессом обновления (в частности, промежуточным программным обеспечением), поэтому я закончил создание нового сайта Laravel 5.2 и просто перешел на мои взгляды, модели и контроллеры со старого сайта. Это, кажется, работает, за исключением того, когда я представить любую форму я получить маркер исключения несоответствия:Laravel 5.2 token несоответствие
TokenMismatchException in VerifyCsrfToken.php line 67:
Мои формы имеют маркер (используя {{ csrf_field() }}
) в них:
<div class="form-group">
{!! Form::label('name', 'Name') !!}
{!! Form::text('name', old('name'), ['placeholder' => 'Name', 'class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('email', 'Email') !!}
{!! Form::email('email', old('email'), ['placeholder' => 'Email', 'class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('phone', 'Phone') !!}
{!! Form::text('phone', old('phone'), ['placeholder' => 'Phone', 'class' => 'form-control']) !!}
</div>
{{ csrf_field() }}
<div class="form-group">
{!! Form::submit('Submit', ['class' => 'btn btn-default btn-small']) !!}
<input type="reset" class="btn btn-primary btn-small" />
</div>
и я прочистила cookie, а также попытался установить config/session.php
lifetime
на большее количество, чтобы гарантировать, что это не время ожидания.
Это работает на приусадебном участке.
Любые идеи, что попробовать?
EDIT: вот маршрут в вопросе
Route::resource('contact', 'ContactController');
edit2: вот файл маршрута. Я не верю, что это необходимо для переноса маршрутов в веб-промежуточном программном обеспечении в Laravel 5.2 - однако я пробовал это в обоих направлениях с той же ошибкой.
Route::group(['middleware' => ['web']], function() {
Route::get('/', '[email protected]');
Route::resource('account', 'AccountController');
Route::resource('contact', 'ContactController');
});
Дамп $request->session()->token()
в создании действия контроллера показывает текущий маркер сеанса на странице с формой. Это тот же токен, который добавляется в форму (проверяется с источником просмотра).
Но когда он добирается до класса Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::tokensMatch()
, я сбрасываю токен сеанса, и он отличается от маркера формы - это никогда не будет соответствовать. Не уверен, чего ожидать здесь.
Можете ли вы показать свой маршрут '' 'POST'' для этого форума? – xdevnull
@ xdevnull-- он находится на маршруте «ресурс», но я отредактирую свой ответ. Спасибо – user101289
@ user101278 Являются ли они под промежуточным ПО Web Group? – xdevnull