首页 > 解决方案 > NodeJS Cookie错误的过期日期

问题描述

这是我用来将 Set-Cookie 发送回客户端的代码段

let cookieAttributes = {
  httpOnly: true,
  secure: true,
};

if (rememberme)
  cookieAttributes.expires = new Date(Date.now() + 60 * 60 * 24 * 14)
                    
res.cookie("token", token, cookieAttributes);
                    
res.status(200).send();

console.log(res);

即使很难,我也将 cookieAttributes 设置为在 60 * 60 * 24 * 14(14 天)内过期,查看控制台中的响应和浏览器中的 cookie,我发现 cookie 将在大约 10 分钟后过期:

'set-cookie': [ 'Set-Cookie', 'token=*redacted*; Path=/; Expires=Mon, 10 Aug 2020 17:16:18 GMT; HttpOnly; Secure' ]

是的,rememberme设置为 true,如果我使用 maxAge 而不是 expires,我也会遇到同样的问题

标签: javascriptnode.jsdatecookies

解决方案


表达式 60 * 60 * 24 * 14 以秒为单位,您应该将其转换为毫秒。只需将其乘以 1000。

cookieAttributes.expires = new Date(Date.now() + 60 * 60 * 24 * 14 * 1000)

推荐阅读