【问题标题】:Django Simple JWT non_field_errors":["No active account found with the given credentials]Django Simple JWT non_field_errors":["没有找到具有给定凭据的活动帐户]
【发布时间】:2019-09-03 09:37:04
【问题描述】:

对于django rest framework,我使用的是来自heredjango-rest-framework-simplejwt

根据给出的指南,我的settings.py REST_FRAMERWORK 应该是这样的:

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ],
}

现在,当我像这样在CURL 的帮助下调用 api /api/token/ 时:

curl -X POST -H "Content-Type: application/json" -d '{"username": "aami", "password": "ooma"}' http://127.0.0.1:8000/api/token/

我收到以下错误:

curl -X POST -H "Content-Type: application/json" -d '{"username": "aami", "password": "ooma"}' http://127.0.0.1:8000/api/token/

而服务器端的日志是:

错误请求:/api/token/ [2019 年 4 月 12 日 15:01:02]“POST /api/token/HTTP/1.1”400 75

我遵循了指南中提到的内容,但我仍然无法找出问题所在。

【问题讨论】:

  • 如果错误是no active account with the given credentials,你似乎没有传递正确的usernamepassword,或者username不存在。
  • 您是如何创建用户的?你能展示这段代码吗?

标签: python django django-rest-framework django-rest-framework-simplejwt


【解决方案1】:

这发生在我身上。我意识到我已经用

创建了我的用户
User.objects.create(username="xxx", password="yyy")

但在 Django 中,需要使用一个特殊的 create_user 方法。我删除了用户并更改为

User.objects.create_user(username="xxx", password="yyy")

它奏效了。

【讨论】:

  • User.objects.createUser.objects.create_user有什么区别?
  • Django 使用特殊的 create_user 方法来确保密码被散列
【解决方案2】:

我遇到了类似的问题,结果我的问题是在用户使用is_active=True 验证了他们的电子邮件后没有激活用户。更多详情请查看https://stackoverflow.com/a/70820311/12601926

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
猜你喜欢
  • 1970-01-01
  • 2019-09-18
  • 2020-03-05
  • 2020-09-12
  • 1970-01-01
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
  • 2021-04-06
相关资源
最近更新 更多