在N分钟不活动后,将用户从Django站点中记录下来

时间:2010-03-29 15:24:58

标签: python django authentication

我正在开发一个网站,要求我们在N分钟不活动后将用户注销。有没有使用Django的最佳实践?

3 个答案:

答案 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