Портирую из 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?