无法设置Cookie'到期'或者' maxAge'在Node.js中使用Express 3.0

时间:2013-01-05 21:08:58

标签: node.js google-chrome cookies express

我一直在尝试使用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。

有谁知道如何解决这个问题?

4 个答案:

答案 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