Я использую Django 1.1.1 с промежуточным ПО для перенаправления ssl.
Данные сеансов (аутентификация и т. Д.), Созданные через HTTPS, недоступны в HTTP-частях сайта.
Как лучше всего сделать его доступным, не делая весь сайт HTTPS?
Я использую Django 1.1.1 с промежуточным ПО для перенаправления ssl.
Данные сеансов (аутентификация и т. Д.), Созданные через HTTPS, недоступны в HTTP-частях сайта.
Как лучше всего сделать его доступным, не делая весь сайт HTTPS?
Это сделано специально, и вы не можете легко это изменить.
Файлы cookie / аутентификация, отправленные через HTTPS, не отправляются браузером, когда тот же сайт просматривается через HTTP. Лучшее решение, вероятно, - перенаправить пользователя со страницы HTTPS на страницу HTTP, которая устанавливает ваш файл cookie аутентификации.
Имейте в виду, что этот неаутентифицированный файл cookie, отправленный в виде открытого текста по сети, открывает ваших пользователей для атак с использованием спуфинга и повторного воспроизведения. Это может не иметь значения для вашего приложения.
Была аналогичная проблема. Пользователь iiie в IRC #django указал мне на этот параметр:
SESSION_COOKIE_DOMAIN
(https://docs.djangoproject.com/en/dev/ref/settings/#session-cookie-domain)Установка этого параметра на ".domain.com"
позволила мне обмениваться сеансами между HTTP / HTTPS, а также между доменами и хостами / поддоменами.
Я мог представить себе ситуацию, когда одно из них не использовалось, но на данный момент это решает мою проблему.