Как указать пользовательский бэкенд auth только для просмотра с одним входом?

У меня есть две конечные точки login api. Одна для обычных пользователей, где пользователь входит только с именем пользователя, а для сотрудников пользователь должен войти с действительным именем пользователя и паролем.

class PasswordLessBackend(ModelBackend):
    def authenticate(self, request, username=None, password=None, **kwargs):
        try:
            user = User.objects.get(username=username)
        except User.DoesNotExist:
            return None
        else:
            if self.user_can_authenticate(user):
                return user


AUTHENTICATION_BACKENDS = [
    "django.contrib.auth.backends.ModelBackend",
    "users.backends.PasswordLessBackend",
]

Я хочу удалить мой пользовательский бэкенд из настроек и применить его только в этом представлении входа, так как другие входы для сотрудников должны требовать правильный пароль.

class NormalUserLoginView(APIView):


    permission_classes = [permissions.AllowAny]

    def post(self, request):
        serializer = NormalUserLoginSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        username = serializer.validated_data.get("username")
        user = authenticate(username=username)
        if user is not None:
            refresh_token = RefreshToken.for_user(user)
            access_token = refresh_token.access_token
            data["access_token"] = str(access_token)
            data["refresh_token"] = str(refresh_token)
Вернуться на верх