Эта проблема только началась сегодня утром, и я понятия не имею, что изменилось, чтобы вызвать ее. Я внедрил небольшую форму поиска в верхнем навигаторе моего сайта, и на прошлой неделе он работал отлично. Сегодня утром он возвращает «TokenMismatchException» для каждой отправки.Форма Laravel :: открытая() датировка истекло _token?
Через мой отладчик я вижу в csrf-фильтре, что действительно значение Input::get('_token')
отличается от значения Session::token()
. Я также могу просмотреть созданный исходный HTML-код формы и сравнить значение автоматически сгенерированного скрытого поля _token
и увидеть, что он отличается от токена в хранилище сеансов (с использованием собственного хранилища файлов 4.2, чтобы эти файлы были правы в моей среде IDE).
Похоже, что по какой-либо причине значение сгенерированного _token
всегда равно значению токена на сеансе. Другими словами, Form::open()
дает мне токен, который истек один сеанс назад. Или создается новый сеанс послеForm::open()
выводит токен.
Я смотрю на это в течение 2,5 часов и не могу понять, что может быть причиной этого. Есть идеи?
EDIT: ДОБАВЛЕНИЕ КОДА -
вид:
{{ Form::open(['route' => 'search.customer_job', 'id' => 'customer-job-search-form']) }}
... // a single select field
{{ Form::close() }}
маршрут:
Route::post('search/customerJobCombined', ['before' => ['csrf', 'auth'], 'as' => 'search.customer_job', 'uses' => '[email protected]']);
Он никогда не достигает контроллера, так что я оставлю это, чтобы избежать стены-о- текст. Только одна переменная передается зрения - это населяет выбора опций - и это делается с помощью зрения композитора - вот что:
public function compose($view)
{
$result = $this->command_bus->execute(new GenerateCustomerJobQuickSearchOptionsCommand());
$view->with('customer_job_quick_search_options', $result->options);
}
Все, что работает просто отлично, хотя.
EDIT # 2: Это была действительно глупая ошибка, связанная с некоторым кодом отладки (Session::flush()
). Я добавил несколько дней назад и забыл о том, что в отпуске.
Какой тип сервера вы используете? вы пытались изменить сеансовый драйвер? – itachi
В настоящее время все это происходит на Homestead, поэтому Ubuntu 14.04/GNU/Linux. Я не изменил драйвер сеанса, но недавно обновил свой бродячий бокс. Я попробую изменить драйвер, чтобы узнать, помогает ли это ... В идеале мне не нужно было менять драйвер для этого. – patricksayshi
Изменение драйвера сеанса (на redis) не помогло – patricksayshi