我正在尝试为我的登录表单实现“记住我”功能。大多数网站如何做到这一点?我假设大多数站点在选中复选框时会动态更改会话 cookie 的 expires 或 max-age 字段。
那么,如何根据是否选中“记住我”复选框来动态更改 cookie 的持续时间?
到目前为止,我有:
if (req.body.remember)
{
var thirtyDays = 30*24*60*60*1000;
req.session.cookie.expires = new Date(Date.now() + thirtyDays);
req.session.cookie.maxAge = thirtyDays;
}
else
{
req.session.cookie.expires = false;
req.session.cookie.maxAge = false;
}
console.log(req.session.cookie.expires, req.session.cookie.maxAge)
这行得通。但我不能选择不记得我;出于某种原因,cookie 永远存在。即使在我删除 cookie(在 chrome 中)并在没有选中记住我字段的情况下登录后,它仍然会在我关闭浏览器的会话时持续存在,即使它在 web 检查器的 cookie 面板中说它是 Session 并且 console.log 正在给出我'假,假'。
我显然做错了什么。我该怎么做?
提前致谢!:)
编辑
看起来上面的代码实际上是有效的。它看起来好像不起作用的原因是因为我可以选择在重新启动 Chrome 时重新打开浏览器选项卡。这导致 Chrome 永远不会删除浏览器会话 cookie,并让我认为将 cookie 的到期设置为 false 不会使它们成为浏览器会话 cookie。