Здравствуйте!
Сегодня обнаружил неприятную вещь - самописный модуль авторизации сломался. Если раньше работал вот этот код, то теперь - нет:
class LoginView(AuthView, GenericAPIView):
"""
Вид предназначен для простой аутентификации
"""
def post(self, request, *args, **kwargs):
data = request.data
username = data.get('username', None)
email = data.get('email', None)
password = data.get('password', None)
if username is None:
username = email
account = authenticate(username=username, password=password)
if account is None:
raise Exception("Не удалось авторизоваться")
if account is not None:
if account.is_active:
login(request, account)
return Response(status=status.HTTP_200_OK)
else:
return Response({
'status': 'Unauthorized',
'message': 'This account has been disabled.'
}, status=status.HTTP_401_UNAUTHORIZED)
else:
return Response({
'status': 'Unauthorized',
'message': 'Имя пользователя или пароль указаны неверно.'
}, status=status.HTTP_401_UNAUTHORIZED)
Функция authenticate() всегда выдаёт None, даже при аутентификации в Django shell. Куда копать? В чём причина? CSRF-токены передаю, логины и пароли верные, задавал через set_password() и всё такое. Не могу авторизоваться, хотя ещё вчера всё работало.
В
settings.py:
AUTH_USER_MODEL = 'extuser.User'
AUTHENTICATION_BACKENDS = (
"django.contrib.auth.backends.ModelBackend",
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.locale.LocaleMiddleware',
)