【问题标题】:Cookie expiry date being ignored in Express 4.13.4 when using moment.toDate()Express 4.13.4 中使用 moment.toDate() 时忽略 Cookie 到期日期
【发布时间】:2016-08-22 07:28:09
【问题描述】:

我正在尝试设置 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 这似乎不正确,因为您应该在响应客户端时设置 cookie而不是在会话中。

【问题讨论】:

    标签: javascript node.js express cookies


    【解决方案1】:

    我通过反复试验发现,由 moment.toDate() 创建的日期对象可能是 Express 不接受的有效 Date 对象。

    以下代码修复了该错误:

    var cookieDate = new Date(moment().add(6, 'months').toDate());
    res.cookie('username', user.username, { expires: cookieDate });
    

    【讨论】:

      猜你喜欢
      • 2017-12-07
      • 2013-07-24
      • 1970-01-01
      • 2017-02-22
      • 2018-01-25
      • 2020-07-17
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      相关资源
      最近更新 更多