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}), }));
在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
。当我们访问这个路由时,服务器将设置两个名为userid
和logkey
的Cookie,并且这两个Cookie的生存时间都被设置为3天。maxAge
参数以毫秒为单位,因此我们需要将3天转换为毫秒(1000毫秒 * 60秒 * 60分钟 * 24小时 * 3天)。
以上就是如何在Node.js中设置Cookie的生存时间的方法。