Lumen: добавление промежуточного программного обеспечения к маршрутам, определенным пакетом

У меня проблема с добавлением промежуточного программного обеспечения к существующим маршрутам пакета поставщика. Я создаю API поверх Lumen (фреймворк микросервисов, созданный Laravel). Я использую Passport для аутентификации oauth и импортировал этот пакет: https://github.com/dusterio/lumen-passport для использования паспорта в Lumen. Я реализовал собственный маршрут для запроса токена и хочу заблокировать запросы к существующему маршруту паспорта: / oauth / token. Но мне также нужен маршрут, чтобы перенаправлять запросы токенов с моего пользовательского маршрута. Я попытался переопределить существующий маршрут следующим образом:

$app->post('/oauth/token', [
    'middleware' => 'reject',
    'uses' => '\Dusterio\LumenPassport\Http\Controllers\AccessTokenController@issueToken'
]);

Но это возвращает мне 500 без отслеживания исключений.

Я использую настраиваемый маршрут для запроса токена, чтобы установить область действия токена в зависимости от роли пользователя. Я использую область видимости для проверки роли пользователя (или приложения с другими типами грантов), обычный маршрут токена Passport должен быть заблокирован для всех, кроме самого Lumen. Только при этом Lumen сможет настраивать прицел.

TL; DR: как добавить промежуточное ПО к пакетным маршрутам в Lumen.


person Yokovaski    schedule 11.05.2017    source источник


Ответы (1)


Последнее слияние https://github.com/dusterio/lumen-passport поддерживает префикс паспортные маршруты.

Я добавил "dusterio/lumen-passport": "dev-master", в свой composer.json и Dusterio\LumenPassport\LumenPassport::routes($app, [ 'prefix' => 'api/v1/protected', 'middleware' => 'reject', ]); в конец моего bootstrap / app.php.

Дополнительную информацию см. В этой проблеме: https://github.com/dusterio/lumen-passport/issues/31

person Yokovaski    schedule 12.05.2017