Джанго: проверять куки на каждой странице? - PullRequest
0 голосов
/ 04 апреля 2011

В Django: какой лучший способ проверить, установлен ли cookie перед загрузкой каждой страницы?

Справочная информация: я работаю с сайтом, который использует аутентификацию LDAP.Я хочу избежать необходимости запрашивать request.META.get('REMOTE_USER') на каждой странице, потому что это абсолютно забивает сервер: он запрашивается для каждого ресурса на странице, сервер связывается, возвращается к базовой аутентификации, и пользователь видит множество диалогов.

Поэтому я хотел бы сделать следующее на каждой странице сайта:

  • проверить, установлен ли пользовательский файл cookie
  • , если нет, перенаправить настраница, которая состоит только из одного HTML-файла, который запрашивает REMOTE_USER и сохраняет его в файле cookie продолжительности сеанса, а затем перенаправляет обратно снова.

По сути, я хочу приблизительное значение @login_requiredдекоратор, без фактического использования Django-логина / пользовательской среды.

Есть предложения, как сделать это для всех страниц сайта без повторения большого количества кода?

большое спасибо!

1 Ответ

3 голосов
/ 04 апреля 2011

Вы хотите добавить промежуточное программное обеспечение, см. http://docs.djangoproject.com/en/dev/topics/http/middleware/#process-request. Возвращает http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponseRedirect, если cookie не установлен, None, если он установлен.

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