示例#1
0
    def __call__(self, request):
        user = None
        try:
            token = mixins.get_token_from_request(request)
            payload = mixins.get_payload_from_token(token)
            user_id = mixins.get_user_id_from_payload(payload)
            user = mixins.get_user(user_id)
            if not user:
                raise exceptions.AuthenticationFailed(_("Invalid user ID."))
        except exceptions.AuthenticationFailed as e:
            logger.debug(e)

        request.user = user if user else AnonymousUser()
        return self.get_response(request)
示例#2
0
    def __call__(self, request):
        if request.path_info != settings.JWT_LOGIN_URL:
            try:
                token = mixins.get_token_from_request(request)
                payload = mixins.get_payload_from_token(token)
                user_id = mixins.get_user_id_from_payload(payload)
                request.user = mixins.get_user(user_id)
                if not request.user:
                    raise exceptions.AuthenticationFailed(
                        _("Invalid user ID."))
            except exceptions.AuthenticationFailed as e:
                return JsonResponse({"error": str(e)}, status=401)

        return self.get_response(request)
示例#3
0
    def __call__(self, request):
        ###
        # added custom allowed jwt request urls to be allowed.
        ###
        if request.path_info.startswith(
                "/admin") or request.path_info.startswith("/static"):
            return self.get_response(request)
        if request.path_info not in settings.JWT_ALLOWED_URLS:
            try:
                token = mixins.get_token_from_request(request)
                payload = mixins.get_payload_from_token(token)
                user_id = mixins.get_user_id_from_payload(payload)
                request.user = mixins.get_user(user_id)
                if not request.user:
                    raise exceptions.AuthenticationFailed(
                        _("Invalid user ID."))
            except exceptions.AuthenticationFailed as e:
                return JsonResponse({"error": str(e)}, status=401)

        return self.get_response(request)