我的项目是react + nodejs + express,我正在使用带有oauth策略的通行证进行身份验证。
我有一些特定的情况,如果OAuth成功通过身份验证,我仍然需要在nodejs端的Oauth回调端点中检查用户的角色,因此如果不允许用户角色。我将需要删除会话,以防他下次通过以下代码通过oauth身份验证:
app.get('/auth/check', ensureAuthenticated, function(req, res) {
res.status(200);
res.send("authorization passed");
});
function ensureAuthenticated(req, res, next) {
if (!req.isAuthenticated()) {
// req.session.originalUrl = req.originalUrl;
res.status(401);
res.send("authorization failed");
//res.redirect('http://localhost:3000/login');
} else {
return next();
}
}
但是我无法通过
删除connect.sidreq.logOut();
req.session.destroy(function (err) {
res.clearCookie('connect.sid', {
path : "/"
});
答案 0 :(得分:0)
如
所述https://github.com/expressjs/session/issues/507#issuecomment-328290070
您可以将代码更改为
res.clearCookie('connect.sid', {path: '/'}).status(200).send('Ok.');
上面的代码对我来说很好。
谢谢。