【问题标题】:Set persistent cookie with Express.js使用 Express.js 设置持久 cookie
【发布时间】:2017-07-20 13:51:25
【问题描述】:

如何设置关闭浏览器时不删除的cookie?

res.cookie 的文档显示了您可以传递给该方法的选项参数,但我无法找到使 cookie 在关闭浏览器后持续存在的配置。

res.cookie('name', 'spence', { expires: 0 });

【问题讨论】:

    标签: node.js express cookies


    【解决方案1】:

    将来只需将expires 参数设置为某个值,cookie 就会持续存在。我被文档挂断了,因为我认为我想要的是一个“会话 cookie”,但正如它的名字所暗示的那样,会话 cookie 只在浏览器 session 期间持续存在。

    虽然 cookie 不可能无限期地持续存在,但您基本上可以通过将 cookie 设置为在遥远的未来某个日期过期来做同样的事情。

    var farFuture = new Date(new Date().getTime() + (1000*60*60*24*365*10)); // ~10y
    res.cookie('name', 'spence', { expires: farFuture });
    

    【讨论】:

    • 假设服务器需要将 sesionid 和所有需要的开销保存在内存中,最好知道会话 cookie 是否需要以及服务器上需要多少内存,以便预测多少内存主机上需要。例如。我每小时有 100 个新的(不返回会话)会话;在我的服务器端运行 5 个月后,这意味着什么?
    • 这个答案虽然引用了会话 cookie 的想法,但更多的是关于设置一个无限期持续的 cookie。像这样设置 cookie 本身并不需要在服务器端的内存中存储任何内容。对于您的情况,我肯定会转向使用某种数据库来存储这么多会话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多