В настоящее время мы используем стратегию https://github.com/panva/node-openid-client для passportJS вместе с cookie-сессией.
Однако мы бы хотели отойти от сеансов и просто сохранить либо простой cookie стокен или прикрепите токен к заголовку при каждом запросе, который мы затем анализируем, чтобы убедиться, что токен действителен.
Я не могу понять это, возможно, это невозможно, я просто не знаюгде или как я могу получить токен из библиотеки openid-client, и когда и как я должен сохранить его в файле cookie.Возможно, он построен только для использования сеанса.
В настоящее время у нас есть:
passport.use(
`oidc.${site}`,
new Strategy(
{
client,
params: getParamsForSite(site),
passReqToCallback,
usePKCE,
},
(tokenset, done) => {
const user = {
token: tokenset,
name: tokenset.claims.sub,
};
return done(null, user);
}
)
);
для входа в систему
app.get(['/login', '/login/:site'], (req, res, next) => {
if (req.params.site) {
passport.authenticate(`oidc.${req.params.site}`)(req, res, next);
} else {
res.end(loginFrontend.success());
}
});
и для обратного вызова
app.get('/auth_callback', (req, res, next) => {
passport.authenticate(`oidc.${req.query.state}`, {
callback: true,
successReturnToOrRedirect: process.env.BASE_URI,
})(req, res, next);
});
Мы хотели бы продолжить использовать эту библиотеку, так как вызываемая нами служба аутентификации имеет конечную точку обнаружения и т. Д. И не хотела бы реализовывать все функции самостоятельно.Если я установлю для сеанса значение false, как мне получить токен и где для этой стратегии кто-нибудь может мне помочь?