Это относится к функции выхода из системы, которую я использую в приложении js. Ожидаемое поведение состоит в том, что как только пользователь нажимает кнопку выхода из системы, приложение перенаправляет на сервер аутентификации (authn / logout) и перенаправляет обратно в приложение, которое должно перенаправить на сервер аутентификации (authn / login_callback). Но я столкнулся с проблемой с этим.
Проблема: После открытия в обычном сеансе он перенаправляет на страницу authn. После входа в систему, даже после нажатия кнопки «Выйти», он перенаправляется обратно в приложение, в котором зарегистрирован пользователь. При открытии в Incognito он снова запрашивает учетные данные аутентификации (ожидается)
app.use("/logout", function (req, res, next) {
///req.session.destroy()
req.session = null;
next();
});
app.use(authn.logoutFilter);
app.get('/isAuthenticated', authn.isAuthenticated);
Фильтр authn.
this.logoutFilter = function (req, res, next) {
var path = req.path;
if (path === logoutUrl) {
if (authEnabled) {
res.redirect(authnUrl + "/logout");
} else {
res.redirect(serviceUrl);
}
}
else {
next();
}
};
Также я хочу понять разницу между session.destroy () и session = null.
Попробовал также метод ниже.
app.get("/logout", function(req, res){
if (authn_config.authEnabled) {
res.clearCookie("TOKEN_NAME");
req.session = null;
res.redirect(authn_config.authnUrl + authn_config.logoutUrl);
} else {
res.redirect(serviceUrl);
}
});
Спасибо за помощь.