如何从cookie中删除connect.sid

问题描述 投票:0回答:1

我的项目是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.sid

req.logOut();
      req.session.destroy(function (err) {
        res.clearCookie('connect.sid', {
          path : "/"
        });
node.js express passport.js
1个回答
0
投票

如上所述

https://github.com/expressjs/session/issues/507#issuecomment-328290070

您可以将代码更改为

res.clearCookie('connect.sid', {path: '/'}).status(200).send('Ok.');

上面的代码对我来说很好。

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.