如何清除节点js中清除浏览器cookie的请求?

时间:2017-03-14 09:57:50

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

我正在使用"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}
}));

1 个答案:

答案 0 :(得分:0)

由于浏览器在删除cookie时无法通知服务器(无论出于何种原因),如果会话仍然存在,则无法在服务器端告知 是否有效。

这就是为什么大多数会话存储都有一个到期机制,它将在特定时间后删除空闲会话(通常与maxAge绑定)。

例如,connect-mongo会话商店使用MongoDB的TTL功能从数据库中删除过期的会话。

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