如何彻底销毁护照/快递会话?
Posted
技术标签:
【中文标题】如何彻底销毁护照/快递会话?【英文标题】:How to completely destory passport/express session? 【发布时间】:2017-03-07 22:16:20 【问题描述】:我试过了
req.session.destroy();
req.logout();
req.logOut();
注销后我检查
req.isAuthenticated()
返回 false。
但是,如果我再次访问 /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 或东西。
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:好像是orcID特有的,我必须forcelogout
【讨论】:
以上是关于如何彻底销毁护照/快递会话?的主要内容,如果未能解决你的问题,请参考以下文章