7

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

SESSION_COOKIE_AGE = 1800

但是,无论活动如何,使用此设置都会在 30 分钟内将用户注销。由于 Django 应用程序不活动,如何强制执行自动注销?

4

3 回答 3

5

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

于 2016-03-14T12:57:36.650 回答
4

django-session-security根据服务器端和 javascript 事件(例如 mousemove、keypress 等等)记录用户活动……此外,它会在会话到期之前警告用户,并尝试使会话到期(如果有活动可能来自另一个浏览器选项卡?)。

只需安装并设置settings.SESSION_SECURITY_EXPIRE_AFTER=1800. 你也可以设置settings.SESSION_SECURITY_WARN_AFTER=1740.

于 2012-05-19T08:18:39.493 回答
3

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
于 2012-04-22T05:12:09.853 回答