针对不同用户的不同SESSION_COOKIE_AGE设置

问题描述 投票:0回答:1

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

SESSION_SAVE_EVERY_REQUEST = True
SESSION_COOKIE_AGE = 600

很容易,我正在寻找一种方法来区分用户组的会话cookie年龄。在示例中,我想比普通用户超过工作人员甚至管理员更快。有没有简单的方法可以通过中间件或在视图中动态修改会话cookie年龄?有没有办法避免编写新的会话管理?

python django django-settings django-sessions
1个回答
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功能。

© www.soinside.com 2019 - 2024. All rights reserved.