栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何检测来自不同位置的多个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之后,你应该发现当有人新登录时以前的登录会自动被破坏:)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411130.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号