我使用快速会话模块设置过期年龄的会话。在此年龄之后,刷新页面时将删除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'
}));
提前致谢。
答案 0 :(得分:0)
您需要强制设置req.session.cookie.expires
或req.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);
})