我正在开发一个网站,要求我们在N分钟不活动后将用户注销。有没有使用Django的最佳实践?
答案 0 :(得分:37)
查看session middleware及其设置。特别是这两个:
SESSION_COOKIE_AGE
默认值:1209600(2周,以秒为单位)
会话Cookie的时代,在 秒。
SESSION_SAVE_EVERY_REQUEST
默认值:False
是否保存会话数据 每一个要求。如果这是假的 (默认),然后会话数据将 只有在修改后才能保存 - 即,如果已分配或删除任何字典值。
设置低SESSION_COOKIE_AGE
并启用SESSION_SAVE_EVERY_REQUEST
应该可以创建“滑动”到期时间。
答案 1 :(得分:2)
在django会话中间件中设置会话cookie年龄只是设置传递回浏览器的set-cookie头中的到期时间。它只是浏览器符合到期时间,强制执行“注销”。
根据您需要空闲注销的原因,您可能不会认为浏览器符合到期时间就足够了。在这种情况下,您需要扩展会话中间件才能这样做。
例如,您可以在会话引擎中存储一个到期时间,您可以使用请求进行更新。根据站点流量的性质,您可能希望仅在X秒内回写一次会话对象,以避免过多的数据库写入。
答案 2 :(得分:0)
尝试将settings.SESSION_COOKIE_AGE设置为N * 60秒。
http://docs.djangoproject.com/en/dev/ref/settings/#session-cookie-age