Laravel применяет несколько промежуточных программ на маршрутах API - PullRequest
0 голосов
/ 19 сентября 2019

Я создал специальное промежуточное программное обеспечение, чтобы проверить, если $request->wantsJson(), то это должно позволить маршруту вызывать функцию.Порядок будет 1. Проверить JSON 2. Проверить Auth

Как я могу реализовать промежуточные изделия в этом порядке?Я пробовал следующее, но это не работает

Route::group(['middleware'  =>  ['auth:api', 'json']], function () {
    Route::group(['prefix'  =>  'V1'], function () {
       Route::post('logout', 'API\V1\AuthController@logout');
    });
});

1 Ответ

1 голос
/ 20 сентября 2019

Зарегистрировали ли вы промежуточное ПО в App\Http\Kernel.php промежуточном ПО маршрута?
https://laravel.com/docs/master/middleware#assigning-middleware-to-routes

protected $routeMiddleware = [
    // ...
    'json' => \App\Http\Middleware\CheckForJson::class,
];

Существует также дополнительный массив для принудительного определения приоритета (порядка) неглобального промежуточного ПО.
https://laravel.com/docs/master/middleware#sorting-middleware

protected $middlewarePriority = [
    // ...
    \App\Http\Middleware\CheckForJson::class,
];
...