2011-01-05 37 views
1

我想在闲置一段时间后将用户注销。这个问题(Logging users out of a Django site after N minutes of inactivity)有一个合理的寻找答案。在django中,request.session.set_expiry在闲置后如何用于注销用户?

但我想了解SESSION_COOKIE_AGE中request.session.set_expiry的区别。前者似乎在固定的时间段之后将用户登出,而不管活动。如果SESSION_SAVE_EVERY_REQUEST为假,这也不是SESSION_COOKIE_AGE所做的吗?

回答

1

从我所知道的,request.session.set_expiry只是覆盖该特定会话的SESSION_COOKIE_AGE设置。使用SESSION_SAVE_EVERY_REQUEST = False(默认值),不会有功能差异。

在这两种情况下,会话活动是基于关机时会是最后一次修改(除非SESSION_SAVE_EVERY_REQUESTTrue,在这种情况下,它被保存在每次请求,所以它的有效修改每个请求)

一个例子您可能希望应用程序的某个部分中的用户拥有较长的会话到期时间,因此您可以在与该应用程序相关的视图中使用request.session.set_expiry并使用自定义值,然后在他们离开该特定部分时使用request.session.set_expiry(SESSION_COOKIE_AGE)重置它。