Как отключить/удалить или изменить порядок middleware в Laravel
Способы отключения/удаления middleware в Laravel.
Отключить middleware для роута:
Route::post('some-route', 'SomeController@action')->withoutMiddleware(['excluded-middleware']);
Отключить middleware для группы маршрутов:
Route::group([
'prefix' => 'optional-prefix', // @note НЕ переопределяет родительский prefix в app/Providers/RouteServiceProvider.php!
'excluded_middleware' => ['excluded-middleware'],
'middleware' => ['auth:web'], // @note Добавить нужные middleware
], function () {
Route::post('some-route', 'SomeController@action');
});
Используем метод Route::prependMiddlewareToGroup() для вставки дополнительных middleware в нужном порядке:
// @note Разрешить аторизацию API запросов по сессии. Это решение для работы с API на скорую руку. Лучше настроить авторизацию по токену.
Route::prependMiddlewareToGroup('api', \App\Http\Middleware\EncryptCookies::class);
Route::prependMiddlewareToGroup('api', \Illuminate\Session\Middleware\StartSession::class);
Route::namespace('Api')->name('api.')->middleware(['auth:web'])->group(function() {
Route::post('some-route', 'SomeController@action');
Route::apiResource('some-resource', 'SomeResourceController');
});
#php, #laravel, #middleware, #routes