首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用express-session强制删除会话ID cookie?

如何使用express-session强制删除会话ID cookie?
EN

Stack Overflow用户
提问于 2017-09-09 02:59:59
回答 1查看 1.6K关注 0票数 1

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

我试着使用:

代码语言:javascript
复制
res.clearCookie('SID').status(200).send('Page');

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

中间件:

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

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-09-09 03:14:59

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

以这段代码为例,

代码语言:javascript
复制
var timeInMillseconds = 3600000;
req.session.cookie.expires = new Date(Date.now() + timeInMillseconds);
req.session.cookie.maxAge = timeInMillseconds;

现在使用这个中间件

代码语言:javascript
复制
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);
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46123018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档