django www против проблемы не www с аутентификацией промежуточного программного обеспечения - PullRequest
0 голосов
/ 14 июня 2011

У меня было непоследовательное поведение с моим приложением Django.

Если я вхожу без www, а затем добавляю www, это не аутентифицируется, и все их комбинации. (www.mydomain.com и mydomain.com любят разные сайты с точки зрения аутентификации)

Если код аутентификации важен, я написал промежуточное программное обеспечение на основе учебника здесь: http://onecreativeblog.com/post/59051248/django-login-required-middleware

До сих пор я исправил проблему, заставляющую добавлять www, используя PREPEND_WWW = True, но я все еще хотел бы понять проблему;)

Кто-нибудь имеет представление о том, что может происходить? Заранее спасибо!

Ответы [ 3 ]

4 голосов
/ 14 июня 2011

То, что сказала Заха Зорг: по умолчанию файлы cookie от Django не будут работать как с предварительно добавленным доменом www, так и без www.

Однако более глубокая проблема заключается в том, что вы разрешаете как www, так и не-www домены вашего сайта для обслуживания идентичного контента.Помимо очевидных последствий SEO от разделения трафика между ними, вы сталкиваетесь с такими проблемами.Правильный способ справиться с этим - перенаправить весь трафик с одного на другой (какой вы пожелаете).Найденная вами настройка PREPEND_WWW отлично подходит для этого.В противном случае (форсирование всего трафика не для www) рекомендуется просто переписать на уровне конфигурации сервера, например Apache или Nginx.

1 голос
/ 14 июня 2011

Может ли быть так, что куки зависят от имени хоста сервера? Это может объяснить, почему оба доменных имени считаются разными.

1 голос
/ 14 июня 2011

Вам нужно посмотреть на https://docs.djangoproject.com/en/dev/ref/settings/?from=olddocs#session-cookie-domain

SESSION_COOKIE_DOMAIN По умолчанию: Нет

Домен для использования в сеансовых куки Задайте для этой строки строку, например ".lawrence.com", для междоменных файлов cookie или используйте None для стандартных файловых файлов cookie. См. Как использовать сессии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...