Django - "check_token" всегда возвращает TRUE
Когда пользователь регистрируется в моем приложении, на его электронную почту отправляется ссылка для проверки аккаунта. При первом нажатии на ссылку все происходит нормально и учетная запись верифицируется, но при повторном нажатии на ту же ссылку проверка проходит, тогда как должна возникать ошибка "authentication failed", поскольку "check_token" должен возвращать false, верно?
Вот сериализатор проверки:
class VerifyAccountSerializer(serializers.Serializer):
    uid = serializers.CharField(min_length=1, write_only=True)
    token = serializers.CharField(min_length=1, write_only=True)
    
    class Meta:
        fields = ['uid', 'token']
    
    def validate(self, attrs):
        uid = attrs.get('uid')
        token = attrs.get('token')
        uidb64 = force_text(urlsafe_base64_decode(uid))
        user = UserAccount.objects.get(pk=uidb64)
        if user is None:
            raise AuthenticationFailed('Invalid account. Please contant support')
        if not PasswordResetTokenGenerator().check_token(user, token):
            raise AuthenticationFailed('Account verify link is invalid. Please contant support.')
        user.is_guest = False
        user.save()
        return user
И функция просмотра:
@api_view(['POST'])
def verify_account(request):
    if request.method == 'POST':
        data = {}
        serializer = VerifyAccountSerializer(data=request.data)
        if serializer.is_valid():
            user = serializer.validated_data
            data['user'] = UserSerializer(user).data
            data['token'] = AuthToken.objects.create(user)[1]
            # delete previous token
            tokens = AuthToken.objects.filter(user=user.id)
            if len(tokens) > 1:
                tokens[0].delete()
            return Response(data, status=status.HTTP_200_OK)
        
        data = serializer.errors
        return Response(data, status=status.HTTP_400_BAD_REQUEST
Странно, почему он не выдает ошибку, потому что в моем другом сериализаторе для сброса пароля по ссылке происходит точно то же самое, только там есть еще одно дополнительное поле для пароля, и если нажать на эту ссылку во второй раз, я получаю ошибку валидации.