在视图装饰器中获取经过身份验证的用户

时间:2018-11-16 12:03:44

标签: python django decorator

我正在尝试使用装饰器来捕获所有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属性。

0 个答案:

没有答案