gpt4 book ai didi

Django drf simple-jwt身份验证“详细信息”: "No active account found with the given credentials"

转载 作者:行者123 更新时间:2023-12-01 16:30:37 55 4
gpt4 key购买 nike

我正在使用自定义用户使用 django-rest_framework_simple-jwt 实现用户身份验证,我的模型.py:

class UserManager(BaseUserManager):
def create_user(self, email, username, password, alias=None):
user = self.model(
email = self.normalize_email(email),
username = username,)
user.set_password(password)
user.save()
return user
def create_superuser(self, email, username, password):
self.create_user(email, username, password)
user.is_staff()
user.is_superuser = True
user.save()
return user

class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(null=False, unique=True)
username = models.CharField(max_length=25, unique=True)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)

objects = UserManager()
USERNAME_FIELD = "email"
REQUIRED_FIELDS = ["username",]

所以我正在实现restframework simple-jwt身份验证,我的设置.py如下:

REST_FRAMEWORK={
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
]}

我的urls.py:

urlpatterns = [
url(r'^api/token/$', TokenObtainPairView.as_view(), name='token_obtain_pair'),
url(r'^api/token/refresh/$', TokenRefreshView.as_view(), name='token_refresh'),]

在登录过程中,它返回错误,“detail”:“没有使用给定凭据找到事件帐户”我的所有用户都处于事件状态。我不知道如何解决这个问题,我需要帮助。提前致谢。

最佳答案

确保您的密码在存储到数据库之前经过哈希处理。我遇到了同样的问题,发现我的密码以纯文本形式存储。将以下内容添加到我的 UserSerializer 解决了问题

from django.contrib.auth.hashers import make_password

def validate_password(self, value: str) -> str:
"""
Hash value passed by user.

:param value: password of a user
:return: a hashed version of the password
"""
return make_password(value)

关于Django drf simple-jwt身份验证“详细信息”: "No active account found with the given credentials",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55906891/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com