В django как request.session.set_expiry используется для выхода из системы пользователей после простоя? - PullRequest
2 голосов
/ 06 января 2011

Я хочу выйти из системы после некоторого периода бездействия. На этот вопрос ( Выход пользователей с сайта Django после N минут бездействия ) есть разумный ответ.

Но я бы хотел понять, что отличает request.session.set_expiry от SESSION_COOKIE_AGE. Первый, по-видимому, выходит из системы после определенного периода времени независимо от активности. Разве это не то, что делает SESSION_COOKIE_AGE, если SESSION_SAVE_EVERY_REQUEST имеет значение False?

1 Ответ

2 голосов
/ 06 января 2011

Из того, что я могу сказать, request.session.set_expiry просто переопределяет настройку SESSION_COOKIE_AGE для этого конкретного сеанса. С SESSION_SAVE_EVERY_REQUEST = False (по умолчанию) функциональной разницы не будет.

В обоих случаях активность сеанса основана на том, когда сеанс был последний раз изменен (если SESSION_SAVE_EVERY_REQUEST не равен True, в этом случае он сохраняется при каждом запросе, поэтому он эффективно изменяется при каждом запросе)

Одним из примеров является то, что вы можете захотеть, чтобы пользователи в определенном разделе вашего приложения имели более длительный срок действия сессии, поэтому вы можете использовать request.session.set_expiry с пользовательским значением в представлениях, связанных с этим приложением, а затем сбросить его с помощью request.session.set_expiry(SESSION_COOKIE_AGE) когда они покидают этот конкретный раздел.

...