Как полностью уничтожить паспорт/экспресс-сессию?

я пробовал

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 или что-то в этом роде.

Как я могу этого добиться?


person Danny Sandi    schedule 25.10.2016    source источник


Ответы (1)


Похоже, это было что-то особенное для orcID, мне нужно форсировать выход

person Danny Sandi    schedule 25.10.2016