我试图为客户端创建一个会话,并试图将cookie的到期日期设置为一天后到期-
const session = require('express-session')
const sessionConfig = {
secret: 'thiswillbeupdatedinthefuture',
resave: false,
saveUninitialized: true,
cookies: {
expires: Date.now() + 1000*60*60*24,
maxAge: 1000*60*60*24,
httpOnly: true
}
}
app.use(session(sessionConfig))
字符串
我在执行代码时没有遇到错误,但是当我检查网页并看到应用程序部分下的cookie详细信息时,它仍然显示connect.sid
cookie的Expires/Max-Age列被设置为Session
,而不是我期望的到期日期。我还尝试在控制台中使用-console.log(req.session)
打印cookie,输出结果是-
Session {
cookie: { path: '/', _expires: null, originalMaxAge: null, httpOnly: true }
}
型
这可能意味着有效期仍然没有改到我所期望的。请帮助我了解为什么会出现此问题,并找到可能的解决方案。
1条答案
按热度按时间voase2hg1#
Expires
属性需要Date作为参数,因此您应该用途:new Date(Date.now() + 1000*60*60*24)
的值。此外,您不应该混合使用
Max-Age
和Expires
。MDN Web Docs:
如果同时设置了Expires和Max-Age,则Max-Age优先。
所以使用
Max-Age
或Expires
。我刚刚注意到你使用了
cookies
关键字,但在express-session文档中,我到处都看到了cookie
。所以看起来像是代码中的错别字。