在django中,request.session.set_expiry如何用于在空闲后注销用户?

时间:2011-01-05 22:26:47

标签: django session cookies session-cookies

我希望在一段时间不活动后将用户注销。这个问题(Logging users out of a Django site after N minutes of inactivity)有一个合理的答案。

但我想了解request.session.set_expiry与SESSION_COOKIE_AGE的区别。无论活动如何,前者似乎都会在固定时间段后将用户注销。如果SESSION_SAVE_EVERY_REQUEST为假,这也不是SESSION_COOKIE_AGE的作用吗?

1 个答案:

答案 0 :(得分:2)

据我所知,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)