我在用"express": "~4.14.0"
with express-session
用于保存用户名。用户登录后,我会将用户名保存在req.session.authorizedUser = username
将其显示在应用程序标题中。
当浏览器历史记录被清除或浏览器关闭时,我想清除会话。
请建议我在执行这两个操作中的任何一个时是否有任何方法可以清除会话。我尝试过设置maxAge
会话cookie的选项,如下图,但是反映不太好:
app.use(session({
secret: "key test",
resave: false,
saveUninitialized: true,
cookie: { secure: !true, path: '/', httpOnly: true, maxAge: null}
}));
由于浏览器在删除 cookie 时(无论出于何种原因)不会通知服务器,因此无法告知服务器纯粹在服务器端会话是否仍然有效。
这就是为什么大多数会话存储都有一个过期机制,该机制将在特定时间后删除空闲会话(这通常与maxAge
).
例如,connect-mongo https://www.npmjs.com/package/connect-mongo会话存储使用 MongoDB 的 TTL 功能从数据库中删除过期的会话。
不过,除了占用一点存储空间之外,空闲会话并不是问题。当用户再次登录时,将为他们创建一个新会话,旧会话最终将过期并从存储中删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)