我正在尝试设置一个有效期为3个月的cookie。我可以将Cookie设置为正常,但设置的有效期无效。
我已经在需要的时候使用了momentJS创建一个日期对象。从控制台输出了正确的时间,但cookie的值不正确,它的值是在几分钟之内到期,而不是从日期算起的3个月。
// Create the date the cookies will expire on
var cookieDate = moment().add(6, 'months').toDate();
console.log(cookieDate);
res.cookie('username', user.username, { expires: cookieDate });
我浏览了文档,它只是要求将Date对象传递给它。
我还查看了stackoverflow,唯一能找到的就是this,它告诉OP使用req.session.cookie,这似乎不正确,因为您应该在响应客户端而不是在 session 中设置cookie 。
最佳答案
我通过反复试验发现,moment.toDate()创建的日期对象可能是Express并未接受的有效Date对象。
以下代码修复了该错误:
var cookieDate = new Date(moment().add(6, 'months').toDate());
res.cookie('username', user.username, { expires: cookieDate });
关于javascript - 使用moment.toDate()时,Express 4.13.4中将忽略cookie的到期日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36899310/