DJANGO JWT - CANT LOGIN ( HTTP 401 Unauthorized ) PROBLEM
"HTTP 401 Unauthorized" Я ПЫТАЮСЬ ИСПРАВИТЬ ЭТУ ОШИБКУ УЖЕ 3 ДНЯ
Мой LoginAPIView
class LoginAPIView(generics.GenericAPIView):
serializer_class=LoginSerializer
#permission_classes = (permissions.IsAuthenticated)
def post(self,request):
serializer=self.serializer_class(data=request.data)
serializer.is_valid(raise_exception=True)
return Response(serializer.data,status=status.HTTP_200_OK)
и My LoginSerializer
class LoginSerializer(serializers.ModelSerializer):
email=serializers.EmailField(
max_length=255,min_length=3)#not matter
password=serializers.CharField(
max_length=68,min_length=5,write_only=True)
username= serializers.CharField(
max_length=255, min_length=3,read_only=True)
tokens = serializers.CharField(
max_length=255, min_length=6, read_only=True)
class Meta:
model=User
fields=[
"email",
"password",
"username",
"tokens"
]
def validate(self, attrs):
email= attrs.get("email", "")
password = attrs.get("password", "")
# Kimlik doğrulama hatası verdi bunun sebebi...
################################################
user = auth.authenticate(email=email, password=password)
"""
debug için örneğin, kullanıcı gelip gelmediğini buradan görebilriiz.
bunu yazdığımız yer debug çalıştırır.
"""
"""
import pdb
pdb.set_trace()
"""
if not user:
raise AuthenticationFailed('Geçerli Kimlik bilgileri giriniz!')
if not user.is_active:
raise AuthenticationFailed('Hesabınız aktif değildir, lütfen admin ile iletişime geçiniz.!')
if not user.is_verified:
raise AuthenticationFailed(' E-mailiniz doğrulanmadı, lütfen sizlere göndermiş olduğumuz doğrulama baplantısını onaylanıyınız!')
return {
'email':user.email,
'username':user.username,
'tokens':user.tokens,
}
return super().validate(attrs)
Итак, я использовал """ import pdb pdb.set_trace()"""
я проверил свою команду,
Была такая проблема,
Неавторизованный: /auth/login/ [29/Nov/2021 22:13:35] "POST /auth/login/?next=/ HTTP/1.1" 401 7638
У меня есть учетная запись в моей системе, я пытаюсь войти в мою систему с моей бывшей учетной записью, но возникает эта проблема, я не могу ее решить,
<<<Спасибо большое за помощь
Кстати, мой models.py (для логина электронной почты)
class UserManager(BaseUserManager):
def create_user(self,username,email,password=None):
if username is None:
raise TypeError('Users should have an username')
if email is None:
raise TypeError('Users should have an email')
user=self.model(username=username,email=self.normalize_email(email))
user.set_password(password)
user.save()
return user
def create_superuser(self,username,email,password=None):
if password is None:
raise TypeError('Password should not be none')
user=self.create_user(username,email,password)
user.is_superuser=True
user.is_staff=True
user.save()
return user
class User(AbstractBaseUser,PermissionsMixin):
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)
is_active= models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
created_at=models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now_add=True)
USERNAME_FIELD='email'
REQUIRED_FIELDS = ['username']
objects=UserManager()
def __str__(self):
return self.email
def tokens(self):
refresh=RefreshToken.for_user(self)
return {
'refresh': str(refresh),
'access': str(refresh.access_token)
}