Ошибка 400 при использовании метода только электронной почты для аутентификации с использованием 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' 

Если я закомментирую три строки выше и использую ту же конечную точку, но добавлю имя пользователя, все будет работать. Вроде только не работает с режимом только электронная почта.

Спасибо за вашу помощь!


person genomics-geek    schedule 05.01.2017    source источник


Ответы (1)


У меня была такая же проблема, которую разрешили путем установки правильных бэкэндов аутентификации. Вот мои настройки:

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"
)
person Marco Ferrantini    schedule 09.02.2017