Как добавить пользовательские сообщения об ошибках в библиотеке Django Rest Framework API Key?

Я реализовал библиотеку Django Rest Framework API Key для аутентификации в своем проекте, и она работает хорошо, однако я заметил, что

"403 Forbidden"

с

{ "detail": "Учетные данные для аутентификации не были предоставлены" }

.

указывается при возникновении какой-либо проблемы. Например, если срок действия ключа истек, то указываются эти данные, если ключ был предоставлен, но недействителен, то указываются эти данные и т.д.

Я хочу иметь возможность сказать клиенту, что именно не так - потому что для просроченного ключа: "учетные данные не были предоставлены" не является правильным - потому что учетные данные были предоставлены, просто они просрочены!

Возможно ли это - или даже безопасно ли это делать?

Это библиотека: https://florimondmanca.github.io/djangorestframework-api-key/

Вы можете добавить пользовательское сообщение к вашей ошибке, добавив msg к вашему исключению

пример:

class AppUserView(GenericAPIView, CreateModelMixin):

    serializer_class = AppUserSerializer
    queryset = AppUser.objects.all()

    def post(self, request, *args, **kwargs):

        user = request.data.get("user")
        try:
            email_address = EmailAddress.objects.get(user=user)
            if email_address.verified == True:
                return self.create(request, *args, **kwargs)
            else:
                msg = gettext_lazy("email address is not verified")
                raise exceptions.NotAuthenticated(msg=msg) 
        except BaseException as e:
            print(f"Unexpected {e=}, {type(e)=}")
            return Response(status=status.HTTP_401_UNAUTHORIZED, data=e.args[0])

Я не знаю, будет ли это работать с вашей библиотекой, но это может дать вам представление

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