由于Django应用程序中的不活动,如何强制执行自动注销?

dan*_*007 7 django django-sessions

在我的Django应用程序中,我希望用户在30分钟不活动后自动注销,所以我在settings.py中使用了这个设置:

SESSION_COOKIE_AGE = 1800
Run Code Online (Sandbox Code Playgroud)

但是,使用此设置会在30分钟内将用户注销,而不管活动如何.由于Django应用程序中的不活动,如何强制执行自动注销?

Fyn*_*ker 5

作为此主题的更新。Django 现在有SESSION_SAVE_EVERY_REQUEST设置,这使它变得更容易。


okm*_*okm 3

当用户访问您的站点时,您可以更新用户的会话。例如在中间件中,此强制会话被再次设置。

class ActivateUser(object):
    def process_request(self, request):
        if request.user.is_authenticated():
            request.session.modified = True
Run Code Online (Sandbox Code Playgroud)

  • 这使得每个请求都会更新数据库。可能会影响性能。 (3认同)