Как вернуть json и кастомный код ошибки при провале аутентификации django до перехода во view?

У меня вот такая проблема:

В своем проекте djnago в настройки я добавил вот такую строку:

AUTHENTICATION_BACKENDS = {
    'core.backends.authentication.token.TokenAuthBackend'
}

И вот такой код для указаного выше модуля:

from django.contrib.auth.backends import BaseBackend
from django.core.exceptions import ValidationError, PermissionDenied

class TokenAuthBackend(BaseBackend):

    def authenticate(self, request, **kwargs):
        if 'Bearer ' in request.headers.get('Authorization', '').title()[:7]:
            # Получение пользователя в переменную user
            return user
        else:
            return None

Моя задача состоит в следущем: Если пользователь не был найден то, если я просто верну None, обработка запроса пойдет дальше. Я же хочу, если пользователь не найден и войти не получилось, незамедлительно вернуть 400/401/403 ошибку и какой-нибудь json.

Но в документации нигде не укзана такая возможность.

Вопрос: Как ещё до перехода во view вернуть 400 ошибку и json для не аутентифицированных пользователей?

P.S. Я знаю, что подобное позволяет делать DRF, однако меня интересует возможность получения такого поведения именно силами обычного django

Вернуться на верх