Django {"non_field_errors":["Невозможно войти в систему с предоставленными учетными данными."]} (authtoken)

models.py

from django.db import models
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin, BaseUserManager

from django.conf import settings
from django.db.models.signals import post_save
from django.dispatch import receiver
from rest_framework.authtoken.models import Token

@receiver(post_save, sender=settings.AUTH_USER_MODEL) # creates token when user registers
def create_auth_token(sender, instance=None, created=False, **kwargs):
    if created:
        Token.objects.create(user=instance)

class cUserManager(BaseUserManager): # saves the user
    def create_user(self, email, password, **others):
        email = self.normalize_email(email)
        user = self.model(email=email, **others)
        user.set_password(password)
        user.save()

        return user
    
    def create_superuser(self, email, password, **others):
        others.setdefault('is_staff', True)
        others.setdefault('is_superuser', True)

        return self.create_user(email, password, **others)

class cUser(PermissionsMixin, AbstractBaseUser):
    email = models.EmailField(unique=True)
    username = models.CharField(max_length=128, unique=True)
    password = models.CharField(max_length=256, unique=True)
    is_staff = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)
    created_at = models.DateTimeField(auto_now_add=True)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []
    objects = cUserManager()

urls.py

from django.urls import path
from . import views
from rest_framework.authtoken.views import obtain_auth_token

urlpatterns = [ 
    # Auth Views
    path('login', obtain_auth_token, name='login'),
]

Образец пользователя

"id": 1,
"email": "user@gmail.com",
"username": "User",
"password": 123,
"is_staff": true,
"is_superuser": true,
"created_at": "2021-08-10 - 16:25:19",

Я пытаюсь войти в систему, но всякий раз, когда я это делаю, выдает эту ошибку:
{"non_field_errors":["Unable to log in with provided credentials."]}, данные, которые отправляются в get_auth_token url это имя пользователя и пароль, все хорошо в settings.py, так что нет необходимости показывать это здесь... так как я могу это исправить?

Выяснилось, что пароли пользователей не были хэшированы... это и есть причина проблемы!

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