【问题标题】:Django - Authenticate with custom User model returns NoneDjango - 使用自定义用户模型进行身份验证返回无
【发布时间】:2018-11-25 10:56:18
【问题描述】:

我正在学习有关设置身份验证的教程 (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


    【解决方案1】:

    根据; Django User Creation successful, but authenticate() returning 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)
    

    【讨论】:

      猜你喜欢
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 2016-07-05
      相关资源
      最近更新 更多