Я работаю над веб-сайтом, который требует, чтобы мы зарегистрировали пользователя после N минуты неактивности. Есть ли какие-либо лучшие практики для этого использования Django?
Взгляните на промежуточное программное обеспечение сеанса и его настройки. В частности, эти два:
SESSION_COOKIE_AGE
По умолчанию: 1209600 (2 недели в секундах)
Возраст файлов cookie сеанса в секундах.
SESSION_SAVE_EVERY_REQUEST
По умолчанию: False
Сохранять ли данные сеанса при каждом запросе. Если это False (по умолчанию), то данные сеанса будут сохраняться только в том случае, если они были изменены - то есть, если какое-либо из его словарных значений было присвоено или удалено.
Установка низкого SESSION_COOKIE_AGE
и включение SESSION_SAVE_EVERY_REQUEST
должны работать для создания "скользящего" истечения срока.
Установка возраста cookie сеанса в промежуточном программном обеспечении сеанса django просто устанавливает время истечения срока действия в заголовке set-cookie, передаваемом обратно в браузер. Только соблюдение браузером времени истечения срока действия приводит к "выходу из системы".
В зависимости от причин, по которым вам нужен выход из системы в режиме ожидания, вы можете не считать соблюдение браузером времени истечения срока действия достаточно хорошим. В этом случае для этого вам потребуется расширить промежуточное ПО сеанса.
Например, вы можете сохранить время истечения срока действия в механизме сеанса, которое вы обновляете запросами. В зависимости от характера трафика на ваш сайт, вы можете захотеть записывать обратно в объект сеанса только один раз в X секунд, чтобы избежать чрезмерных операций записи в базу данных.
Попробуйте установить settings.SESSION_COOKIE_AGE на N * 60 секунд.
http://docs.djangoproject.com/en/dev/ref/settings/#session-cookie-age