node.js - 如何清除node js中清除浏览器cookie的req.session?

标签 node.js express session-cookies express-session

我使用 "express": "~4.14.0"express-session 来保存用户名。用户登录后,我会将用户名保存在 req.session.authorizedUser = username 中,以将其显示在应用程序 header 中。

当浏览器历史记录被清除或浏览器关闭时,我想清除 session 。

请建议我在执行这两个操作中的任何一个时是否有任何方法可以清除 session 。我尝试过为 session cookie设置maxAge选项,如下所示,但效果不佳:

app.use(session({
    secret: "key test",
    resave: false,
    saveUninitialized: true,
    cookie: { secure: !true, path: '/', httpOnly: true, maxAge: null}
}));

最佳答案

由于浏览器在删除 Cookie 时不会通知服务器(无论出于何种原因),因此无法仅在服务器端告知 session 是否仍然有效。/p>

这就是为什么大多数 session 存储都有一个过期机制,该机制将在特定时间(通常与 maxAge 相关)后删除空闲 session 。

例如,connect-mongo session 存储使用 MongoDB 的 TTL 功能从数据库中删除过期的 session 。

除了占用一些存储空间之外,空闲 session 并不是问题。当用户再次登录时,将为他们创建一个新 session ,旧 session 最终将过期并从存储中删除。

关于node.js - 如何清除node js中清除浏览器cookie的req.session?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42782761/

相关文章:

javascript - ES6 解构的 promise ?

node.js - Flask 中的 ReactJS 服务器端渲染

node.js - 哪个 hogan.js 模板包与 express.js 一起使用?

Java cookie 在 Firefox 中被删除,但在 Google 或 IE 中未被删除

node.js - Zombie Js如何在特定情况下使用

node.js - 按 2 个字段搜索 mongoDB

tomcat - 如何更改tomcat中的 session cookie?

python - Scrapy - 如何管理 cookie/ session

javascript - Express.js 中设置和获取 cookie 失败

node.js - 间歇性 502 错误网关错误(使用 nginx、nodejs、mongodb)