繁体   English   中英

如何在Django网站中跟踪admin / staff的登录位置

[英]How to track login locations of admin/staff in django website

我有一个django网站,

1.我需要在其中创建一些职员用户来登录和访问/查看模型的地方。

2.但是同时我想跟踪员工甚至管理员的登录位置。

3.我有任何适当的Django模块或第三方api来执行此操作。

您可以使用一些中间件和GIS contrib应用程序来完成此任务,该应用程序提供了geoip查找的包装器。

创建一个简单的表来记录您的额外详细信息,然后使用类似以下的内容:

from django.contrib.gis.utils import GeoIP
from logger.models import Log # your simple Log model

def get_ip(request):
   xff = request.META.get('HTTP_X_FORWARDED_FOR')
   if xff:
      return xff.split(',')[0]
   return request.META.get('REMOTE_ADDR')

class UserLocationLoggerMiddleware(object):

    def process_request(self, request):
        if request.user and request.user.is_superuser:
            # Only log requests for superusers,
            # you can control this by adding a setting
            # to track other user types
            ip = get_ip(request)
            g = GeoIP()
            lat,long = g.lat_lon(ip)
            Log.objects.create(request.user, ip, lat, long)

有关如何设置和配置自定义中间件的信息,请参阅中间件文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM