如何使用express session防止web应用程序并发登录

如何使用express session防止web应用程序并发登录,express,authentication,express-session,login-control,Express,Authentication,Express Session,Login Control,我正在创建一个web应用程序,该应用程序将由应用程序的管理员使用,出于安全原因,我们不希望在任何时候允许单个用户进行多个活动登录 我将会话数据存储在web浏览器的cookie中,希望后端具有当前登录到应用程序的活动用户的信息,以便在成功登录请求时,我可以确定此特定用户是否已经有活动会话。如果可能的话,我可以阻止该用户的登录 一种方法是使用lastlogentime在数据库中存储IsLoggedIn,在每次登录时,我可以使用这两个标志来标识是否存在活动会话 打开其他更好的解决方案(如果有)我认为比

我正在创建一个web应用程序,该应用程序将由应用程序的管理员使用,出于安全原因,我们不希望在任何时候允许单个用户进行多个活动登录

我将会话数据存储在web浏览器的
cookie
中,希望后端具有当前登录到应用程序的活动用户的信息,以便在成功登录请求时,我可以确定此特定用户是否已经有活动会话。如果可能的话,我可以阻止该用户的登录

一种方法是使用
lastlogentime
数据库中存储
IsLoggedIn
,在每次登录时,我可以使用这两个标志来标识是否存在活动会话


打开其他更好的解决方案(如果有)

我认为比检查上次登录时间更可靠的解决方案是为每个新登录生成并存储一个
id
,然后包括一个中间件,以确保每个用户的会话
id
符合您的期望。这样,每次用户登录到另一台设备时,前一台设备将失效,一次只有一个会话有效。您甚至可以使用
express session
req.session.id

,这样每次用户登录到另一个设备时,前一个设备将失效,一次只有一个会话有效。->我不想使以前的登录无效,相反,新的登录尝试应该无效。对不起,有点误解了你的问题。我仍然认为,如果你“不想允许单个用户在任何时间点进行多个活动登录”,你需要使用一个唯一标识符,而不是简单的布尔值。因为如果你不这样做,你所能做的就是不允许用户在短时间内多次登录。