使用django-allauth和django-rest-auth仅使用电子邮件方法进行身份验证时出现400错误

时间:2017-01-05 20:09:17

标签: django-allauth django-rest-auth

我正在尝试使用django-rest-auth和django-allauth设置身份验证。用户存在于数据库中,我可以登录django管理站点。当我尝试使用rest-auth / login / endpoint发布电子邮件/密码登录时,收到400错误,并收到以下回复:

{
    "non_field_errors": [
        "Unable to log in with provided credentials."
    ]
}

我按照此处的说明操作:http://django-allauth.readthedocs.io/en/latest/configuration.html#configuration

在我的设置文件中,我有以下内容:

ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_AUTHENTICATION_METHOD = 'email' 

如果我注释掉上面的三行并使用相同的端点但添加了它的用户名。它似乎只适用于仅限电子邮件模式。

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,通过使用正确的身份验证后端解决了这个问题。这是我的设置:

ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True 

AUTHENTICATION_BACKENDS = (
    "django.contrib.auth.backends.ModelBackend",
    "allauth.account.auth_backends.AuthenticationBackend"
)