如何使用快速会话防止Web应用程序的并发登录

时间:2018-05-31 14:56:18

标签: express authentication express-session login-control

我正在创建一个将由App管理员使用的Web应用程序,出于安全考虑,我们不希望在任何时候允许来自单个用户的多个活动登录。

我将会话数据存储在Web浏览器的cookie中,并希望后端拥有当前登录到应用程序的活动用户信息,以便在成功登录请求时我可以查看此特定用户是否已有活跃的会议。如果可以,那么我可以阻止该用户的登录。

一种方法是将IsLoggedIn存储在Database LastLoginTime中,每次登录时,我都可以使用这两个标志来识别是否存在活动会话。

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

1 个答案:

答案 0 :(得分:0)

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