不同用户的SESSION_COOKIE_AGE设置不同

时间:2019-01-03 13:11:07

标签: python django django-settings django-sessions

我正在使用以下设置在django中执行会话超时:

SESSION_SAVE_EVERY_REQUEST = True
SESSION_COOKIE_AGE = 600

非常简单,我正在寻找一种方法来区分用户组的会话Cookie年龄。例如,我想使普通用户超时的速度要快于工作人员甚至管理员。是否有任何简单的方法可以通过中间件或视图即时修改会话cookie的年龄?有办法避免编写新的会话管理方法吗?

1 个答案:

答案 0 :(得分:0)

这是我在项目中所做的: 我在user_logged_in中使用了admin.py信号 并从此处设置SESSION_COOKIE_AGE。我不确定这是否是一个好方法,但是它可以工作。

from django.contrib.auth.signals import user_logged_in

def login_hook(sender, **kwargs):
    settings.SESSION_COOKIE_AGE = settings.SESSION_COOKIE_AGE_ADMIN

user_logged_in.connect(login_hook)

如果适用,您还可以尝试使用session.set_expiry功能。