如何在 nodejs + express 应用程序中设置空闲会话超时和最大会话超时?

How do I set idle session timeout and max session timeout in nodejs + express app?

我有一个 NodeJS + Express 应用程序,需要在应用程序上设置空闲会话超时和最大会话超时。是否有任何设置或选项可用于设置这些值?我查看了 cookie.expires 和 cookie.maxAge。这些是否分别用于设置空闲超时和会话超时。有人可以帮我解决这个问题吗?

提前致谢!

当会话 cookie 在用户浏览器中过期时,会话就会消失。如果您在服务器中实现它,它也可以在一定时间后过期。

要将空闲超时设置为 300 秒,您可以这样做。每次点击您的服务器时,您都会再次发送会话 cookie,有效期为现在+300 秒。如果用户在 cookie 过期之前没有再次访问服务器,则下一次访问将没有 cookie,因此用户不会显示为已登录。

要设置总超时(最大会话超时),您可以使用服务器代码。为您的会话数据设置过期时间。此后,每当您根据会话 cookie 中的会话 ID 查找会话数据时,都会检查过期时间。如果会话已过期,则处理对服务器的点击,就好像用户未登录一样。

"处理会话可以在端、浏览器和服务器端完成。

对于服务器端,你必须使用 express-session npm 包 这里是设置session过期时间的示例代码

const express = require('express')
const session = require('express-session')
 // Use the session middleware
 const app = express()
 app.use(session({
  secret: 'its my secret',
  cookie: { maxAge: 60000 }, // value of maxAge is defined in milliseconds. 
  resave: false,
  rolling: false,
  saveUninitialized: true
}))

//above-defined code will set session which will get expired after 60 seconds.

不应直接设置过期选项;而只使用 maxAge 选项。 resave 强制将会话保存回会话存储,即使会话在请求期间从未被修改。 滚动:强制在每个响应上设置会话标识符 cookie。过期重置为原来的maxAge,重置过期倒计时。 要在会话中设置任何值,请使用 req.session。 =“