Nodejs中关于Cookie 生存时间是怎么设置的

Nodejs中关于Cookie 生存时间是怎么设置的

我把这个内容写到cookie res.setHeader(“Set-Cookie”, [“userid=398754325”, “logkey=suid323”] 如何设置这个cookie 的生存时间呢. .设置有效时间是3天.??

session中的cookie 貌似指的是seeion 的生存时间. app.use(session({ secret: appconfig.cookieSecret, resave: false, saveUninitialized: true, cookie:{maxAge:1000605},//单位毫秒 // store: new MongoStore({db: appconfig.db}), }));


3 回复

在Node.js中设置Cookie的生存时间可以通过Set-Cookie头来实现。默认情况下,Cookie如果没有明确设置过期时间,它将被视为会话Cookie,在浏览器关闭时自动删除。如果你希望Cookie在一定时间后仍然存在,可以使用maxAge属性或直接设置Expires属性。

使用 maxAge 属性

maxAge 是一个非常简单且常用的方法,用于设置Cookie的有效期(以毫秒为单位)。例如,如果你想让Cookie在3天后过期,你可以这样设置:

res.setHeader('Set-Cookie', [
  'userid=398754325; maxAge=1000 * 60 * 60 * 24 * 3',
  'logkey=suid323; maxAge=1000 * 60 * 60 * 24 * 3'
]);

在这个例子中,maxAge 设置为 1000 * 60 * 60 * 24 * 3,即3天的毫秒数。

直接设置 Expires 属性

另一种方法是直接设置Expires属性,这允许你指定一个确切的日期和时间作为过期时间。这种方法稍微复杂一些,因为需要手动计算未来的日期时间:

const threeDaysLater = new Date(Date.now() + 1000 * 60 * 60 * 24 * 3).toUTCString();
res.setHeader('Set-Cookie', [
  'userid=398754325; Expires=' + threeDaysLater,
  'logkey=suid323; Expires=' + threeDaysLater
]);

在这个例子中,我们创建了一个新的Date对象,该对象表示当前时间加上3天的时间,并将其转换为UTC格式的字符串。然后,我们将此字符串作为Expires值添加到Cookie中。

总结

  • 使用maxAge是最简单的方式,适用于大多数情况。
  • 使用Expires则提供了更精确的控制,但需要更多的计算。

以上就是如何在Node.js中设置Cookie的生存时间的详细方法,希望对你有所帮助。


要在Node.js中设置一个Cookie的生存时间(即过期时间),你可以使用res.cookie()方法,并通过maxAge属性来指定Cookie的过期时间。在你的例子中,你想设置一个Cookie的生存时间为3天。

以下是具体的实现方法:

const express = require('express');
const app = express();

app.get('/set-cookie', (req, res) => {
    const maxAgeInMs = 1000 * 60 * 60 * 24 * 3; // 3天的毫秒数
    res.cookie('userid', '398754325', { maxAge: maxAgeInMs });
    res.cookie('logkey', 'suid323', { maxAge: maxAgeInMs });

    res.send('Cookies have been set!');
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

在这个示例中,我们创建了一个简单的Express应用,并定义了一个路由/set-cookie。当我们访问这个路由时,服务器将设置两个名为useridlogkey的Cookie,并且这两个Cookie的生存时间都被设置为3天。maxAge参数以毫秒为单位,因此我们需要将3天转换为毫秒(1000毫秒 * 60秒 * 60分钟 * 24小时 * 3天)。

以上就是如何在Node.js中设置Cookie的生存时间的方法。

回到顶部