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, так что нет необходимости показывать это здесь... так как я могу это исправить?
Выяснилось, что пароли пользователей не были хэшированы... это и есть причина проблемы!