使用 moment.toDate() 时,在 Express 4.13.4 中忽略了 Cookie 到期日期
Cookie expiry date being ignored in Express 4.13.4 when using moment.toDate()
>我正在尝试设置一个特定到期日期为 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上环顾四周,我唯一能找到的是它告诉OP使用req.session.cookie,这似乎不对,因为您应该在响应客户端而不是在会话中设置cookie。
通过一些试验和错误,我发现由 moment.toDate() 创建的日期对象可能是一个有效的 Date 对象,它不被 Express 接受。
以下代码修复了该错误:
var cookieDate = new Date(moment().add(6, 'months').toDate());
res.cookie('username', user.username, { expires: cookieDate });
相关文章:
- 比较从函数和生成的日期对象
- 如果设置了过期日期,则Javascript Cookie为空
- 使用 moment.toDate() 时,在 Express 4.13.4 中忽略了 Cookie 到期日期
- 如何在 Javascript 中设置 cookie 的到期日期
- 在设置 Cookie 时指定到期日期时,我可以使用哪些日期格式
- 如何更新 cookie 值(并且不更改到期日期)?JavaScript
- 如何使用PHP将当前日期保存在cookie中,并在javascript中读取它
- JavaScript cookie 访问次数,上次登录日期
- 设置 Cookie 和显示日期加 10 天
- 如何将 Cookie 到期日期设置为一个月
- 将到期日期设置为会话cookie
- Cookie过期日期
- 限制名称和日期js cookie每次会话只加载一次
- 设置cookie过期日期
- Javascript cookie有2个值,名字和最后访问日期
- cookie如何识别名称、过期日期、路径
- Internet Explorer: cookie的过期日期不起作用
- 无法设置javascript cookie过期日期
- 设置具有不同到期日期的 Cookie
- 如何使用js设置cookie的过期日期