Как обернуть Keycloak внутрь middleware в NestJS?

Портирую из Express в Nest JS приложение.

В приложении работает Keycloak как промежуточное ПО для аутентификации пользователей.

Внедрено было вот так в самом app.js:

let wrapper = (mdlwr) => {
  return (req, res, next) => {
    if (req.params && req.params.keyz == 'some value') {
      return next();
    } else {
      mdlwr(req, res, next);
    }
  };
};



const Keycloak = require('keycloak-connect');

let memoryStore = new session.MemoryStore();
    let keycloak = new Keycloak({store: memoryStore});

    app.use(
        session({
          secret: "some secret",
          resave: false,
          saveUninitialized: true,
          store: memoryStore
        })
    );

app.use(keycloak.middleware({
          logout: "/logout"
        })
    );

app.use('/', wrapper(keycloak.protect()), indexRouter);


Внедряю Keycloak в NestJS приложение по вот этому гайду: https://github.com/ferrerojosh/nest-keycloak-connect

Из коробки все работает. Как мне внедрить в Nest JS решение из кода выше в сам Nest JS? По сути обернуть его еще в один обработчик соблюдая DI. Как мне реализовать такое в Nest JS?
  • Вопрос задан
  • 568 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы