我正在尝试使用装饰器来捕获所有GET
请求的审核跟踪,但是捕获已认证的用户时遇到了问题。我想从包含一个包含用户ID的JWT令牌的标头中获取经过身份验证的用户。
假设我有以下视图:
class UserViewSet(viewsets.ModelViewSet):
authentication_classes = (JSONWebTokenAuthentication,)
permission_classes = (IsAuthenticated,)
serializer_class = UserSerializer
@audit_view_action()
def get_queryset(self):
return get_users(self.request.user)
和以下装饰器:
def audit_view_action():
def decorator_func(func):
def wrapper_func(request, *args, **kwargs):
retval = func(request, *args, **kwargs)
return retval
return wrapper_func
return decorator_func
有没有办法获得活跃用户?我尝试从request
request.context['request']
获取它,但是request
只是一个UserViewSet
对象,没有context
属性。