我有一个网站,其中包含针对不同类型用户的多个规则集。规则之一(权限)取决于会话到期。
例如,当浏览器关闭时,必须刷新未经身份验证的用户会话,但是,经过身份验证的用户会话应该存在一个恒定的时间。
此外,对于经过身份验证的用户,会话中的一些密钥可能会在浏览器关闭时被删除,但其他的应该保持活动状态。
如何在 Django 中实现这种基于密钥的会话过期?
我有一个网站,其中包含针对不同类型用户的多个规则集。规则之一(权限)取决于会话到期。
例如,当浏览器关闭时,必须刷新未经身份验证的用户会话,但是,经过身份验证的用户会话应该存在一个恒定的时间。
此外,对于经过身份验证的用户,会话中的一些密钥可能会在浏览器关闭时被删除,但其他的应该保持活动状态。
如何在 Django 中实现这种基于密钥的会话过期?
您可以通过使用set_expiry
on 方法来做到这一点request.session
。该方法采用整数表示会话到期的秒数,adatetime
或timedelta
会话应到期的时间,整数 0 表示会话应在浏览器关闭时到期或None
表示会话应回退到默认值超时策略。
您应该能够编写一个中间件来评估会话到期的标准,然后set_expiry
在处理请求之前调用会话。