How can I detect multiple logins into a Django web application from different locations?
2024-09-04 17:03:34
1) Install django-tracking (thankyou for that tip Van Gale Google Maps + GeoIP is amazing!)
2) Add this middleware:
from django.contrib.sessions.models import Session
from tracking.models import Visitor
from datetime import datetime
class 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 unicode(last_login)==unicode(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) Make sure it goes after the VisitorTrackingMiddleware and you should find previous logins are automatically bumped when someone new logs in :)
转自: http://stackoverflow.com/questions/821870/how-can-i-detect-multiple-logins-into-a-django-web-application-from-different-lo
最新文章
- 利用innodb_force_recovery 解决WAMP MySQL服务器无法正常启动的问题
- HDU 1285 确定比赛名次 拓扑排序模板题
- CDH版本升级
- [CareerCup] 13.3 Virtual Functions 虚函数
- Make Rules
- Request.QueryString
- Python 基础【第二篇】python操作模式
- C# DbHelperSQLite,SQLite数据库帮助类 (转载)
- uva 10763 Foreign Exchange <;";map"; ,vector>;
- background-image 与 img 动画性能对比
- Erlang edoc 多级目录出错
- Uva - 804 - Petri Net Simulation
- Django-CRM项目学习(八)-客户关系系统整体实现(待完成!)
- 初步了解HTML
- Python3学习之路~6.6 类的继承
- virt-install详解
- Chart:ECharts
- SQL Server 调优系列基础篇 - 并行运算总结(一)
- Spring学习笔记--声明一个简单的Bean
- 数字签名中公钥和私钥是什么?对称加密与非对称加密,以及RSA的原理
热门文章
- MVC中的Controller中返回一个JsonResult在弹出一个下载框?
- readlink命令
- cocurrent包 锁 Lock
- 在Android中解决内存溢出 – OutOfMemoryError
- WEB服务器、应用程序服务器、HTTP服务器区别 【转】
- python 小技巧(glob,guid,序列化,压缩字符,有序字典,sorted函数,分片)
- Java中hashcode的理解
- cocos2d-x 2.2.0 图片选中聚焦 ,图片描边 CCClippingNode 实现
- 一个对比各种开源库的网站 libhunt
- mysql 存储过程 演示样例代码