Совместное использование сеансов django на определенных поддоменах

Правильный ответ на ваш вопрос находится в разделе 7.19 спецификации C # 3.0, которую вы легко найдете в Интернете. Для вашего удобства, соответствующий текст:

7.19 Булевы выражения

Булево-выражение - это выражение, которое дает результат типа bool.

Управляющим условным выражением оператора if [...] является логическое выражение. [...]

Булево выражение должно иметь тип, который может быть неявно преобразован в bool, или тип, который реализует оператор true. Если ни одно из требований не выполнено, возникает ошибка времени компиляции.

Если логическое выражение имеет тип, который не может быть неявно преобразован в bool, но реализует оператор true, то после вычисления выражения вызывается реализация оператора true, предоставляемая этим типом, для получения значения bool.

Нет никаких других типов, кроме самого bool, которые неявно преобразуются в bool посредством встроенного преобразования, но, конечно, пользовательские неявные преобразования в bool могут быть определены пользователем.

22
задан dave paola 18 September 2010 в 17:20
поделиться

4 ответа

Вы можете написать свое собственное ПО SessionMiddleware для установки и получения файлов cookie на основе доменов.

По сути, вы хотите скопировать существующий класс SessionMiddleware . В функции process_request для просмотра домена и получения правильного файла cookie для настройки SessionStore. В process_response вы захотите написать куки для обоих поддоменов. В ваших настройках вы удалите существующий класс SessionMiddleware и замените его своим собственным.

Это только у меня в голове, так что не ненавидь меня, если это не сработает. Желаем удачи, и, пожалуйста, опубликуйте свои выводы для будущих читателей.

2
ответ дан 29 November 2019 в 05:06
поделиться

Недавно я видел похожий вопрос в: Как получить отдельные приложения Django на одном поддомене для совместного использования cookie сеанса?

Где было рекомендовано иметь отдельные сеансы, но с одним знаком -при использовании django-cas (вы входите только на один из сайтов).

5
ответ дан 29 November 2019 в 05:06
поделиться

Я не знаю django, но возможно ли вам установить 2 куки вместо 1? Видите ли, cookie отправляется только в том случае, если домен cookie соответствует URL-адресу домена? Если вы хотите иметь один и тот же сеанс на 2 разных доменах, вы можете установить 2 куки с одинаковым значением и разные домены. В этом случае .example.com и support.example.com. Таким образом, вы получите этот cookie только при доступе к одному из них.

0
ответ дан 29 November 2019 в 05:06
поделиться

У меня есть приложение с несколькими доменами, поэтому решение с изменением чего-либо в settings.py мне не подошло. Поэтому я установил cookie для основного домена следующим образом:

# let's get our domain
arr = request.get_host().split(':')[0].split('.')
# if we are at subdomain page right now
# we should delete subdomain using:
# arr.pop(0)
domain = ".".join(arr)
response.set_cookie('city', 'somevalue, domain="."+domain)

Этот кодовый набор cookie для всех поддоменов со страниц доменов / поддоменов.

0
ответ дан 29 November 2019 в 05:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: