19

我一直在尝试使用 Express 3.0 在 Node.js 中设置我的 cookie 的到期日期,但没有任何效果。

我的第一次尝试:

res.cookie('user', user, { maxAge: 9000, httpOnly: true });

只是以根据 Chrome 的无效到期时间结束的 cookie 结束。然后我尝试设置“过期”,如下所示:

res.cookie('user', user, { expires: new Date(new Date().getTime()+5*60*1000), httpOnly: true });

现在我的 cookie 只是一个会话 cookie。

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

4

4 回答 4

37

请注意 maxAge 以毫秒为单位-

res.cookie('jwtToken', token, { maxAge: 2 * 60 * 60 * 1000, httpOnly: true }); // maxAge: 2 hours
于 2017-09-03T18:23:56.767 回答
11

你必须使用req.session.cookie

req.session.cookie.expires = false;

req.session.cookie.maxAge = 5 * 60 * 1000;

另请参阅连接文档

于 2013-01-05T22:16:24.087 回答
5

接受的答案对我不起作用..但原始问题的版本确实有效。例如

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 });
于 2013-12-19T14:36:45.340 回答
0
res.cookie('cookieName', jsonObject, { expires: new Date(Date.now() + (30*24*3600000)) }); /*set 1month,

如果您遇到与 cookie 过期初始化相关的任何问题,请自行调试,我必须自己调试并修复如下:

  • 将初始化时间插入新变量
var expiryDate = new Date(Date.now() + (60*24*3600000));
console.log(expiryDate);
  • 如果它显示为方面,然后查看cookieParser npm v
于 2021-08-08T17:33:09.153 回答