Lumen Добавить оператор «ИЛИ» для промежуточного программного обеспечения с несколькими маршрутами - PullRequest
0 голосов
/ 03 апреля 2020

Здравствуйте. У меня есть API, созданный с помощью Lumen с использованием Passport для аутентификации.

Существует 2 разных клиента API клиентов паспорта (пользователи, которые будут напрямую использовать API) и клиенты веб-сайта (пользователи, которые будут входить в веб-интерфейс приложение, и приложение будет использовать API).

Я выполняю проверку подлинности 2 различных токенов паспорта с использованием 2 промежуточных программ.

client.credentials и auth:api

и мои маршруты

/**
 * Routes for users accessing through API directly
 */
$router->group(['middleware' => 'client.credentials'], function () use ($router) {

    $router->get('/users', 'UserController@index');
    $router->get('/users/me', 'UserController@me');
    $router->post('/users', 'UserController@store');
    $router->get('/users/{user}', 'UserController@show');
    $router->put('/users/{user}', 'UserController@update');
    $router->patch('/users/{user}', 'UserController@update');
    $router->delete('/users/{user}', 'UserController@destroy');
});


/**
 * Routes for users accessing API through Website API
 */
$router->group(['middleware' => 'auth:api'], function () use ($router) {

    $router->get('/users', 'UserController@index');
    $router->get('/users/me', 'UserController@me');
    $router->post('/users', 'UserController@store');
    $router->get('/users/{user}', 'UserController@show');
    $router->put('/users/{user}', 'UserController@update');
    $router->patch('/users/{user}', 'UserController@update');
    $router->delete('/users/{user}', 'UserController@destroy');
});

Большинство маршрутов будут общими для обоих клиентов. То, как я использую свои маршруты, ТОЛЬКО последнее промежуточное программное обеспечение вступает в силу и полностью игнорирует первое (в моем случае client.credentials игнорируется). Есть ли способ сказать, что разрешить запрос, если какой-либо из промежуточного программного обеспечения является действительным ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...