fei_middlewares.logging_user 源代码

"""记录当前访问的用户
"""
from django.conf import settings

[文档]def django_current_user(get_response): """记录当前访问的用户 django用户,非drf用户 """ def wrapper(request): print('-- django_current_user --'.ljust(30)) print(f' session ---> {request.session._SessionBase__session_key}') print(f' path_info ---> {request.path_info}') print(f' current USER/ID ---> {request.user}/{request.user.id}') # print('------------------- END middleware [current_user] ---\n') result = get_response(request) return result return wrapper
from app_models.models import UserLog
[文档]def logging_user(get_response): """日志记录到日志表 'x_forwarded_for', 'x_real_ip', 'remote_addr', 'userid', 'username', 'datetime', 'url', 'method', 'payload', """ def wrapper(request): user_log = UserLog() if request.META.get('HTTP_X_FORWARDED_FOR'): user_log.x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') else: user_log.x_forwarded_for = request.headers.get('X_Forwarded_For') if request.META.get('HTTP_X_REAL_IP'): user_log.x_real_ip = request.META.get('HTTP_X_REAL_IP') else: user_log.x_real_ip = request.headers.get('X_Real_Ip') if request.META.get('REMOTE_ADDR'): user_log.remote_addr = request.META.get('REMOTE_ADDR') if request.user.id: user_log.userid = request.user.id if request.user.username: user_log.username = request.user.username else: user_log.username = '未登录' print(f'-- logging_user -- '.ljust(30)) print(user_log.__dict__) user_log.url = request.path_info user_log.method = request.method user_log.save() result = get_response(request) return result return wrapper