NodeJS 无法使用express为会话cookie设置过期日期

zmeyuzjn  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(141)

我试图为客户端创建一个会话,并试图将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 }
}


这可能意味着有效期仍然没有改到我所期望的。请帮助我了解为什么会出现此问题,并找到可能的解决方案。

voase2hg

voase2hg1#

Expires属性需要Date作为参数,因此您应该用途:new Date(Date.now() + 1000*60*60*24)的值。
此外,您不应该混合使用Max-AgeExpires
MDN Web Docs
如果同时设置了Expires和Max-Age,则Max-Age优先。
所以使用Max-AgeExpires
我刚刚注意到你使用了cookies关键字,但在express-session文档中,我到处都看到了cookie。所以看起来像是代码中的错别字。

相关问题