在我的 Django 应用程序中,我希望用户在 30 分钟不活动后自动注销,所以我在 settings.py 中使用了这个设置:
SESSION_COOKIE_AGE = 1800
但是,无论活动如何,使用此设置都会在 30 分钟内将用户注销。由于 Django 应用程序不活动,如何强制执行自动注销?
在我的 Django 应用程序中,我希望用户在 30 分钟不活动后自动注销,所以我在 settings.py 中使用了这个设置:
SESSION_COOKIE_AGE = 1800
但是,无论活动如何,使用此设置都会在 30 分钟内将用户注销。由于 Django 应用程序不活动,如何强制执行自动注销?
作为此主题的更新。Django 现在有了SESSION_SAVE_EVERY_REQUEST设置,这使它更容易。
django-session-security根据服务器端和 javascript 事件(例如 mousemove、keypress 等等)记录用户活动……此外,它会在会话到期之前警告用户,并尝试不使会话到期(如果有活动可能来自另一个浏览器选项卡?)。
只需安装并设置settings.SESSION_SECURITY_EXPIRE_AFTER=1800
. 你也可以设置settings.SESSION_SECURITY_WARN_AFTER=1740
.
You could update the session of an user when he accesses your site. For example in a middleware, this force session to be set again.
class ActivateUser(object):
def process_request(self, request):
if request.user.is_authenticated():
request.session.modified = True