【问题标题】:How can I force the deletion of a session ID cookie with express-session?如何使用 express-session 强制删除会话 ID cookie?
【发布时间】:2017-09-09 03:47:43
【问题描述】:

我正在使用 express-session 模块来设置一个有过期时间的会话。过了这个年龄,刷新页面时cookie会被删除。但是,例如当用户注销时,我想强制删除cookie。我已经使用req.session.destroy.成功销毁了会话

我试过用:

res.clearCookie('SID').status(200).send('Page');

虽然在req.session.destroy, 内部,但如果我在浏览器中查看cookie 详细信息,我会看到内容设置为空,并且到期日期设置为Thursday, 1 January 1970 at 01:00:00,,尽管cookie 不会自行删除。我还在会话存储配置中设置了unset: 'destroy',但这并没有解决我的问题。

中间件:

app.use(session({
  store: new MemoryStore({
    checkPeriod: 86400000
  }),
  cookie: {
    secure: true,
    maxAge: 10000
  },
  secret: secret,
  resave: false,
  saveUninitialized: false,
  name: 'SID',
  unset: 'destroy'
}));

提前致谢。

【问题讨论】:

    标签: node.js session express cookies express-session


    【解决方案1】:

    你需要强制设置req.session.cookie.expiresreq.session.cookie.maxAge的值。

    以这段代码为例,

    var timeInMillseconds = 3600000;
    req.session.cookie.expires = new Date(Date.now() + timeInMillseconds);
    req.session.cookie.maxAge = timeInMillseconds;
    

    暂时使用这个中间件

    app.use(session({
      secret: 'mySecre',
      saveUninitialized: true
    }))
    
    app.get('/', function(req, res){
       req.session.myUser = "myUser";
       req.session.cookie.expires = new Date(Date.now() + 36000000);
       req.session.cookie.myDog = "myDog";
       res.status(201).send(req.session); //you can also use 200
       console.log(req.session);
    })
    

    【讨论】:

    • 您好,感谢您的帮助。我做了 req.session.cookie.expires = new Date(0);但这似乎并没有在 cookie 上设置过期日期,它只是保持在配置中的默认设置。
    • 尝试那里的确切代码,new Date(Date.now() + hour) 也使用req.session.save(function(err) {}) 为客户端保存它? @MatthewChristopher
    • 小时未定义。我也没有像这样设置会话,在快速会话中,我是这样设置的:req.session.user = value;
    • 对不起,这仍然不起作用。我正在使用 req.session.cookie.expires = new Date(Date.now() + 3600000);不会是 req.session.user.cookie.expires 吧?
    • 另外,到期不能正确设置,因为当我查看 cookie 信息时,到期是我在 express-session 配置中设置的,而不是提前一个小时。
    猜你喜欢
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 2015-10-22
    • 2021-01-11
    • 2020-10-13
    • 2018-12-14
    • 2010-12-18
    • 2010-11-08
    相关资源
    最近更新 更多