я пробовал
req.session.destroy();
req.logout();
req.logOut();
После выхода я проверяю
req.isAuthenticated()
Возвращает ложь.
Но если я снова перейду к /login, он автоматически аутентифицирует меня с тем же пользователем, не переходя к форме входа.
Я использую стратегию OAuth2Strategy для подключения паспорта к ORCID. Я хотел бы полностью уничтожить сеанс, поэтому, если я хочу снова войти в систему, я могу сделать это с другим пользователем.
Вот как это у меня настроено:
app.use(session({
secret: 'secret,
saveUninitialized: 'true',
resave: 'true'
}));
app.use(passport.initialize());
app.use(passport.session());
passport.serializeUser((user, done) => {
done(null, user);
});
passport.deserializeUser((user, done) => {
done(null, user);
});
passport.use(new OAuth2Strategy({
scope: '/authenticate',
authorizationURL: '',
tokenURL: '',
clientID: '',
clientSecret: '',
callbackURL: '',
passReqToCallback: true
},
(req, accessToken, refreshToken, params, profile, cb) => {
cb(null, data);
}
));
Я создаю SPA, поэтому я хотел бы, чтобы маршрут /logout возвращал мне только статус успеха, и чтобы в следующий раз, когда я попытаюсь войти в систему, я перешел к форме, а не аутентифицировал меня на основе, я думаю, файла cookie или что-то в этом роде.
Как я могу этого добиться?