Маршрутизация Laravel и защита CSRF

Если у меня есть эта строка кода в моем файле rout.php:

Route::when('*', 'csrf', array('post', 'put', 'patch', 'delete'));

Мне все еще нужно сделать это?

Route::group(array('before' => 'csrf'), function() {
Route::post('/search', array(
'as' => 'search-post',
'uses' => 'SearchController@postSearch'
));
});

Или это нормально, просто сделать это?

Route::post('/search', array(
'as' => 'search-post',
'uses' => 'SearchController@postSearch'
));

0

Решение

Route::when фильтры (внутренне называются шаблонные фильтры) называются прямо перед before фильтры. У вас все хорошо, если вы просто используете свои маршруты нормально.

Вот соответствующий исходный код:

public function callRouteBefore($route, $request)
{
$response = $this->callPatternFilters($route, $request);

return $response ?: $this->callAttachedBefores($route, $request);
}

Как вы видите, сначала будут вызваны фильтры шаблонов. Если они возвращают какой-либо ответ, он будет возвращен отсюда, в противном случае будет вызвано «обычное» перед фильтрами.

3

Другие решения

Да; вы должны быть в безопасности только Route::post('/search', [...]);,

2