我正在尝试使用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'
如果我注释掉上面的三行并使用相同的端点但添加了它的用户名。它似乎只适用于仅限电子邮件模式。
感谢您的帮助!
答案 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"
)