Как использовать маршрутное промежуточное программное обеспечение Express в Nestjs? - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь использовать эту библиотеку ( keycloak-connect ) для аутентификации и авторизации.Он имеет глобальное промежуточное ПО, которое можно напрямую использовать методом app.use() или обернуть вокруг него промежуточный класс nestjs.Но как использовать специальное промежуточное программное обеспечение для конкретного маршрута, которое используется для защиты отдельных маршрутов?.

Пример использования в приложении простого экспресса

app.get( '/protected', keycloak.protect('adminRole'), handler );

Метод protect возвращает промежуточное программное обеспечение простого экспресса с подписью function(req, res, next)

1 Ответ

0 голосов
/ 02 июня 2018

Ваш "обработчик" - это метод (украшенный либо GET, либо POST и т. Д.) В классе, украшенном @Controller.Модуль, импортирующий этот контроллер , должен объявить промежуточное ПО.

Пример:

@Module({
  controllers: [YourController],
})
export class YourModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer
      .apply(keyCloack.protect('adminRole'))
      .forRoutes('/protected');
  }
}

Где YourController содержит обработчик для маршрута '/ protected'.

Реализация NestModule является ключом.Тогда вы обязаны объявить configure и можете использовать consumer.

...