首页 > 解决方案 > Django - 使用自定义用户模型进行身份验证返回无

问题描述

我正在关注有关设置身份验证的教程( https://thinkster.io/tutorials/django-json-api/authentication )。我已经到了注册用户并接收令牌的地步。我可以掉进壳里做;

 >>> user = Users.objects.first()
 >>> user.email 
 >>> test@outlook.com
 >>> user.password
 >>> 12345678

这表明该用户存在于数据库中。但是当调用我的登录端点时;

/users/login/ 

验证方法返回无。

user = authenticate(username=email, password=password)

我刚刚打印了电子邮件和密码,它显示了传入的正确数据。

我还在我的模型中将我的 USERNAME_FIELD 设置为电子邮件。

USERNAME_FIELD = 'email'

我已经在我的设置中更新了我的模型

AUTH_USER_MODEL = 'aemauthentication.User'

我环顾四周,设置文件中的上述行似乎是大多数有此问题的人认可的答案。

项目的 GitHub 链接 - https://github.com/Daniel-sims/aem_1

标签: django

解决方案


按照; Django 用户创建成功,但 authenticate() 返回 None

我更改了 create_user 方法以将密码作为参数;

user = self.model(username=username, email=self.normalize_email(email), password=password)

但你必须调用设置密码,所以一切正常;

user = self.model(username=username, email=self.normalize_email(email))
user.set_password(password)

推荐阅读