Здравствуйте. У меня есть 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 игнорируется). Есть ли способ сказать, что разрешить запрос, если какой-либо из промежуточного программного обеспечения является действительным ??