使用moment.toDate()时,Express 4.13.4中Cookie的有效期限被忽略
我正在尝试设置一个特定的有效期为3个月的cookie。 我可以把cookie设置好,但是为它设置的失效不起作用。
我用momentJS来创build一个我想要的date对象。 从控制台输出正确的时间,但是cookie没有正确的值,它的价值将在几分钟内而不是从date起的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和唯一我能find的是这告诉OP使用req.session.cookie这似乎不正确,因为你应该设置一个cookie响应客户端,而不是在一个会话。
我发现通过一些试验和错误,由moment.toDate()创build的date对象可能是一个有效的Date对象,它不被Express接受。
以下代码修复了这个bug:
var cookieDate = new Date(moment().add(6, 'months').toDate()); res.cookie('username', user.username, { expires: cookieDate });