限制PassportJS上每个用户的并发会话数
作为标题,我需要为每个用户设置一个Web应用程序并发会话的上限,以防止帐户共享。
我在passportjs(在节点平台上)使用本地策略进行身份validation。
这样做的最佳做法是什么? 计算login请求的数量(创build会话的位置)是否足够了?
对于每次成功login,您都需要在数据库中保留会话logging。 当有人尝试login时,您需要查询数据库来计算活动会话的数量。
您计算login请求数量的想法不起作用的原因有几个:
- 如果服务器重新启动,计数将会丢失,而用户仍然会被authentication。
- 它不能与多个节点进程进行扩展,因为每个节点进程都无法将login尝试传递给其他进程。
我最后在会话表中添加了另一个字段,用于跟踪user_id
。
在创build会话的每个login操作中,我将查询当前用户的所有会话,并在超出限制时删除它们。
- 你可以在RESTFUL环境中使用NodeJs Passport Sessions吗?
- 使用RedisStore时,有什么方法可以查看当前会话吗?
- 无法在Layer.session – ExpressJS会话中读取未定义的属性“connect.sid”
- Express.js req.sessionvariables不通过不同的路由存储会话variables
- 注销会话Angular2 nodeJS
- Express js会话 – 仅为login用户创build
- AngularJS服务器会话和validation与nodeJS后端服务器
- 无法在typescript / angular2环境中设置持久会话,在后端设置nodejs
- 如何理解会话和Flash?