我使用 "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 存储都有一个过期机制,该机制将在特定时间(通常与 例如, 除了占用一些存储空间之外,空闲 session 并不是问题。当用户再次登录时,将为他们创建一个新 session ,旧 session 最终将过期并从存储中删除。maxAge
相关)后删除空闲 session 。connect-mongo
session 存储使用 MongoDB 的 TTL 功能从数据库中删除过期的 session 。
关于node.js - 如何清除node js中清除浏览器cookie的req.session?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42782761/