Node.js/Express.js会话管理cookie应该是会话性cookie。

7

如何将 connect.sid cookie 从持久性 cookie 转换为会话 cookie?

我曾尝试过,但没有成功。

app.use(express.session({cookie: { path: '/', httpOnly: true}, secret:'eeuqram'}));

但是cookie仍然具有过期时间戳。


你试过这个吗?https://dev59.com/kG855IYBdhLWcg3wYjSF - glortho
实际上,那是我最先评论的地方。我知道如何创建一个仅会话的cookie,但我希望在使用会话时创建的默认cookie(该cookie的默认名称为connect.sid)成为非持久性cookie。 - Ustaman Sangat
我觉得你忘记了最重要的部分 => expires: new Date() - 1? - Alfred
2
"new Date() - 1" 这段代码会在 Node.js 服务器上进行评估吗?如果是,它会如何影响浏览器的时区?我尝试了 Chrome,它会使 cookie 过期,从而导致会话结束并出现太多重定向(我正在使用 SSO 解决方案)。 - Ustaman Sangat
1个回答

18
 app.use(express.session({cookie: { path: '/', httpOnly: true, maxAge: null}, secret:'eeuqram'}));

以上方法可行。通过将 maxAge 设置为 null,我成功让 ExpressJS 使用会话 cookie。太好了。


我想你应该接受自己的答案,这样话题就可以关闭了。 - Alfred
我会的...看来我必须等待至少24小时才能接受自己的答案。 - Ustaman Sangat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接