Выход пользователей из сайта Django после N минут бездействия - PullRequest
20 голосов
/ 29 марта 2010

Я работаю над сайтом, который требует, чтобы мы вышли из системы через N минут бездействия. Есть ли лучшие практики для этого с использованием Django?

Ответы [ 3 ]

38 голосов
/ 29 марта 2010

Посмотрите на промежуточное программное обеспечение сеанса и его настройки. Конкретно эти два:

SESSION_COOKIE_AGE

По умолчанию: 1209600 (2 недели, в секундах)

Возраст сеансовых файлов cookie, в секунд.

SESSION_SAVE_EVERY_REQUEST

По умолчанию: False

Сохранять ли данные сеанса на каждый запрос. Если это Неверно (по умолчанию), тогда данные сеанса будут быть сохраненным, только если он был изменен - то есть, если какое-либо из его значений словаря было присвоено или удалено.

Установка минимума SESSION_COOKIE_AGE и включение SESSION_SAVE_EVERY_REQUEST должны работать для создания «скользящего» истечения.

2 голосов
/ 29 марта 2010

Установка возраста файлов cookie сеанса в промежуточном программном обеспечении сеанса django просто устанавливает время истечения в заголовке set-cookie, передаваемом обратно в браузер. «Только выход из браузера с истечением срока действия» обеспечивает «выход».

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

Например, вы можете сохранить время истечения в вашем механизме сеанса, который вы обновляете с помощью запросов. В зависимости от характера трафика на ваш сайт, вы можете захотеть выполнять обратную запись в объект сеанса только один раз в X секунд, чтобы избежать чрезмерной записи в БД.

0 голосов
/ 29 марта 2010

Попробуйте установить настройки. SESSION_COOKIE_AGE в N * 60 секунд.

http://docs.djangoproject.com/en/dev/ref/settings/#session-cookie-age

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