[Python] CSRF token not set

Discussão em 'Python' iniciado por Stack, Junho 24, 2025.

  1. Stack

    Stack Membro Participativo

    I was creating my api using django restframework. I am using simple jwt for authentication. The tokens are generated after user login via his/her email and password but before login email must be verified, so when try to test my verify-email endpoint i get error that CSRF token is not set.

    This is my endpoint:

    class VerifyEmailView(GenericAPIView):
    serializer_class=VerfyEmailSerializer
    @csrf_exempt
    def post(self,request):
    serializer=self.get_serializer(data=request.data)
    if not serializer.is_valid():
    return Response(
    {'message':'Invalid Input','error':serializer.errors},
    status=status.HTTP_400_BAD_REQUEST
    )
    else:
    otpcode=serializer.validated_data['totp']

    try:
    # Find the latest OTP for any user (since email isn’t provided)
    user_code_obj = OneTimePassword.objects.latest('created_at')
    user = user_code_obj.user

    if user_code_obj.is_expired():
    user_code_obj.delete()
    print(user_code_obj)
    return Response(
    {'message': 'OTP expired'},
    status=status.HTTP_400_BAD_REQUEST
    )

    if user_code_obj.verify_Otp(otpcode): # Pass the submitted OTP
    user_code_obj.delete()
    if not user.is_verified:
    user.is_verified = True
    user.save()
    print(user)
    return Response(
    {'message': 'Account email verified successfully'},
    status=status.HTTP_200_OK
    )
    return Response(
    {'message': 'User already verified'},
    status=status.HTTP_200_OK
    )

    return Response(
    {'message': 'Invalid OTP code'},
    status=status.HTTP_400_BAD_REQUEST
    )
    except OneTimePassword.DoesNotExist:
    return Response(
    {'message': 'No valid OTP found'},
    status=status.HTTP_404_NOT_FOUND
    )



    i tried to add @csrf_exempt so that to exampt it but still did not work

    Continue reading...

Compartilhe esta Página