Почему я не могу войти в систему после обновления 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 - тот же результат.