我一直在尝试使用Express 3.0在Node.js中设置我的cookie的到期日期,但没有任何工作。
我的第一次尝试:
res.cookie('user', user, { maxAge: 9000, httpOnly: true });
根据Chrome浏览器,只是以无效的到期时间结束。 然后我尝试设置'expires',就像这样:
res.cookie('user', user, { expires: new Date(new Date().getTime()+5*60*1000), httpOnly: true });
现在我的cookie只是一个会话cookie。
有谁知道如何解决这个问题?
答案 0 :(得分:4)
您必须使用req.session.cookie
:
req.session.cookie.expires = false;
req.session.cookie.maxAge = 5 * 60 * 1000;
另见connect docs。
答案 1 :(得分:4)
请注意,maxAge以毫秒为单位 -
res.cookie('jwtToken', token, { maxAge: 2 * 60 * 60 * 1000, httpOnly: true }); // maxAge: 2 hours
答案 2 :(得分:2)
接受的答案对我不起作用..但原始问题的版本确实有效。例如
var language = 'en';
//10 * 365 * 24 * 60 * 60 * 1000 === 315360000000, or 10 years in milliseconds
var expiryDate = new Date(Number(new Date()) + 315360000000);
this.__res.cookie('lang', language, { expires: expiryDate, httpOnly: true });
答案 3 :(得分:0)
res.cookie('cookieName', jsonObject, { expires: new Date(Date.now() + (30*24*3600000)) }); /*set 1month,
如果您遇到任何与 cookie expire 初始化相关的问题,请自行调试,我必须自己调试并修复如下:
var expiryDate = new Date(Date.now() + (60*24*3600000));
console.log(expiryDate);
cookieParser npm v