Node.js 如何在清除节点js中的浏览器cookie时清除req.session?

Node.js 如何在清除节点js中的浏览器cookie时清除req.session?,node.js,express,session-cookies,express-session,Node.js,Express,Session Cookies,Express Session,我正在使用“express”:“~4.14.0”和express会话保存用户名。一旦用户登录,我将在req.session.authorizedUser=username中保存用户名,以在应用程序标题中显示它 清除浏览器历史记录或关闭浏览器时,我想清除会话 在执行这两个操作中的任何一个时,请建议我是否有任何方法来清除会话。我已尝试为会话cookie设置maxAge选项,如下所示,但它没有反映出良好的效果: app.use(session({ secret: "key test",

我正在使用
“express”:“~4.14.0”
express会话
保存用户名。一旦用户登录,我将在
req.session.authorizedUser=username
中保存用户名,以在应用程序标题中显示它

清除浏览器历史记录或关闭浏览器时,我想清除会话

在执行这两个操作中的任何一个时,请建议我是否有任何方法来清除会话。我已尝试为会话cookie设置
maxAge
选项,如下所示,但它没有反映出良好的效果:

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

由于浏览器在删除cookie时不会通知服务器(无论出于何种原因),因此无法仅在服务器端判断会话是否仍然有效

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

例如,会话存储使用MongoDB的TTL特性从数据库中删除过期的会话


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

您能告诉我如何在客户端维护会话吗?@DhyaS这到底是什么意思?您想在客户端知道会话何时过期吗?是。。确切地但JS sessionStorage在节点中未定义JS@DhyaS最终,由服务器决定会话何时过期。客户端通常不知道它是否有有效的会话。确保会话处于活动状态且有效的唯一方法是定期查询服务器。