我正在使用"express": "~4.14.0"
和express-session
来保存用户名。用户登录后,我会将用户名保存在req.session.authorizedUser = username
中,以便在应用程序标题中显示。
当浏览器历史记录被清除或浏览器关闭时,我想清除会话。
如果在执行这两项操作中有任何方法可以清除会话,请建议我。我已经尝试为会话cookie设置maxAge
选项,如下所示,但它并不反映好:
app.use(session({
secret: "key test",
resave: false,
saveUninitialized: true,
cookie: { secure: !true, path: '/', httpOnly: true, maxAge: null}
}));
答案 0 :(得分:0)
由于浏览器在删除cookie时无法通知服务器(无论出于何种原因),如果会话仍然存在,则无法在服务器端告知 是否有效。
这就是为什么大多数会话存储都有一个到期机制,它将在特定时间后删除空闲会话(通常与maxAge
绑定)。
例如,connect-mongo
会话商店使用MongoDB的TTL功能从数据库中删除过期的会话。
除了占用一点存储空间外,闲置会话不是问题。当用户再次登录时,将为他们创建一个新会话,旧会话将最终到期并从存储中删除。