Почему я не могу войти в систему после обновления Django с 2.2 до 3.2?
Я только что обновил свой проект Django 2.2 до 3.2, и теперь я не могу войти под любым пользователем в базе данных. Я в замешательстве, потому что не получаю никаких сообщений об ошибках, но постоянно перенаправляюсь на страницу входа после успешной аутентификации и входа в систему.
Вот шаги, которые я предпринимаю:
- Введите имя пользователя/пароль в форму входа (отлично работает в 2.2)
- В файле python используется
user = authenticate(username=username, password=password)
, а затемlogin(request, user)
.
- Я могу подтвердить, что имя пользователя/пароль правильные, и печать
request.user
сразу после вызоваlogin
регистрирует правильного пользователя. - Когда я проверяю cookies в браузере, значение для
sessionid
установлено. - После успешного входа сервер посылает перенаправление на защищенный аутентификацией маршрут. Однако при получении защищенного маршрута печать
request.user
становитсяAnonymousUser
, а затем я перенаправляюсь обратно на страницу входа.
Похоже, что это проблема с сессиями. Я вижу, что куки устанавливаются, и даже когда я вручную устанавливаю куки sessionid
на значение, возвращаемое request.session.session_key
сразу после вызова login, он все равно не распознает авторизованного пользователя. Я следовал рекомендациям в примечаниях к выпуску по установке DEFAULT_HASHING_ALGORITHM = 'sha1'
.
Есть идеи о том, что происходит? Без каких-либо сообщений об ошибках я застрял и не могу понять, почему я не могу войти в систему как пользователь. Я также пробовал использовать sqlite3 и Postgres - тот же результат.