![](/img/trans.png)
[英]How to avoid getting user private data (user's email) on server (Django Social Auth)
[英]Getting user`s UUID from django server
我有一个带有管理面板的 django 服务器。
不同的用户在那里进行更改,这通过数据库中的审计日志保存并显示在“历史记录”中。
但有些情况下,用户以另一个用户的帐户进入并代表他进行更改。
为了识别从哪个设备进行了这个或那个更改,一个不错的决定是记录有关从中进行更改的用户的 IP 及其唯一设备编号的数据。
通过重载“AuditlogMiddleware”class 中的几个方法,我通过“uuid.UUID(int=uuid.getnode())”得到了想要的结果。
(本地测试,因为prod服务器负载过重,没办法做测试委)
from __future__ import unicode_literals
import threading
import time
from auditlog.middleware import AuditlogMiddleware
threadlocal = threading.local()
class ExtendedAuditlogMiddleware(AuditlogMiddleware):
def process_request(self, request):
threadlocal.auditlog = {
'signal_duid': (self.__class__, time.time()),
'remote_addr': request.META.get('REMOTE_ADDR'),
}
super(ExtendedAuditlogMiddleware, self).process_request(request)
**#changes here
import uuid
threadlocal.auditlog['additional_data'] = str(uuid.UUID(int=uuid.getnode()))+" | "+request.META["USERNAME"]**
# @staticmethod
def set_actor(self, user, sender, instance, signal_duid, **kwargs):
super(ExtendedAuditlogMiddleware, self).set_actor(user, sender, instance, signal_duid, **kwargs)
**#changes here
instance.additional_data = threadlocal.auditlog['additional_data']**
但问题是我想我得到的不是用户的 UUID,而是服务器的 UUID,因为我猜是因为无法访问用户。 我找不到资料,也想不出自己的解决办法。
问题 - 是否有可能从服务器获取有关 django 管理员用户设备的信息?
如果没有,我可以使用什么代替 UUID 来识别在 django 管理面板中进行更改时使用了哪个设备?
谢谢大家!
尝试在模板中使用 javascript 来发送此信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.