如何检测来自不同位置的多个Django Web应用程序登录?

如何检测来自不同位置的多个Django Web应用程序登录?,第1张

如何检测来自不同位置的多个Django Web应用程序登录

不知道这是否仍然需要,但想与我分享我的解决方案:

1)安装django-tracking(感谢你的贴士Van Gale Google Maps + GeoIP很棒!)

2)添加此中间件:

from django.contrib.sessions.models import Sessionfrom tracking.models import Visitorfrom datetime import datetimeclass UserRestrictMiddleware(object):    """    Prevents more than one user logging in at once from two different IPs    """    def process_request(self, request):        ip_address = request.meta.get('REMOTE_ADDR','')        try: last_login = request.user.last_login        except: last_login = 0        if unipre(last_login)==unipre(datetime.now())[:19]: previous_visitors = Visitor.objects.filter(user=request.user).exclude(ip_address=ip_address) for visitor in previous_visitors:     Session.objects.filter(session_key=visitor.session_key).delete()     visitor.user = None     visitor.save()

3)确保它位于VisitorTrackingMiddleware之后,你应该发现当有人新登录时以前的登录会自动被破坏:)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5021687.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存