Невозможно проверить электронную почту при использовании простого JWT в django

В моем django-приложении секции регистрации и входа работают правильно. Когда кто-то регистрируется, он получает подтверждение по электронной почте, но при нажатии на ссылку подтверждения электронной почты учетная запись не проверяется. Я использую try и except, причем except выполняется каждый раз, а try никогда не выполняется.

models.py

username = models.CharField(max_length=255, unique=True, db_index=True)
    email = models.EmailField(max_length=255, unique=True, db_index=True)
    is_verified = models.BooleanField(default=False)

views.py

  serializer_class = EmailVerificationSerializer

    def get(self, request):
        token = request.GET.get('token')
        try:
            key = jwt.decode(token, settings.SECRET_KEY)
            user = User.objects.get(id=key['user_id'])
            if not user.is_verified:
                user.is_verified = True
                user.save()
            return Response({'email': 'Your email has been activated'}, status=status.HTTP_200_OK)
        except jwt.exceptions.DecodeError as identifier:
            return Response({'error': 'token not valid'}, status=status.HTTP_400_BAD_REQUEST)

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

Попробуйте использовать key = jwt.decode(token, settings.SECRET_KEY, algorithms=['HS256'])

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