如何限制登录Django中同一帐户的并发用户数

Kak*_*oin 12 django django-admin django-authentication django-sessions django-users

我的网站是一个用Django编写的数字市场网站.

默认情况下,网站上的数字内容(文本,图像,视频)处于"锁定"状态.只有购买这些内容的用户才能查看.

有一个故事,某个用户(谁购买了内容)免费向许多人赠送用户名/密码(例如,Facebook群组中有1000多人).然后,这1,000名用户可以使用该单一用户名/密码登录,并查看"锁定"的数字内容而无需支付一分钱.

是否可以限制同一帐户的并发登录次数?

我发现这个包裹:

https://github.com/pcraston/django-preventconcurrentlogins

但是当有人使用相同的用户名/密码登录时,它的作用是记录以前的用户.这无济于事,因为每个用户每次只需输入用户名/密码即可访问"锁定"内容.

Dav*_*cos 9

要限制并发用户,请密切关注现有会话.

在您当前的方法中,当用户登录时,会创建一个新会话.新会话与较旧的会话共存,因此您同时拥有N个并发会话.

您想允许单个会话.最简单的方法是在发生新登录时使旧会话无效:

其他(更完整但更复杂)的方法是使用双因素身份验证,阻止每个IP,限制登录事件,需要电子邮件确认等...