我想在一段时间不活动后注销用户。这个问题(Logging users out of a Django site after N minutes of inactivity)有一个合理的答案。
但我想了解 request.session.set_expiry 与 SESSION_COOKIE_AGE 的区别。无论活动如何,前者似乎都会在固定时间后将用户注销。如果 SESSION_SAVE_EVERY_REQUEST 为 False,这不也是 SESSION_COOKIE_AGE 所做的吗?
我想在一段时间不活动后注销用户。这个问题(Logging users out of a Django site after N minutes of inactivity)有一个合理的答案。
但我想了解 request.session.set_expiry 与 SESSION_COOKIE_AGE 的区别。无论活动如何,前者似乎都会在固定时间后将用户注销。如果 SESSION_SAVE_EVERY_REQUEST 为 False,这不也是 SESSION_COOKIE_AGE 所做的吗?
据我所知,request.session.set_expiry
只需覆盖该SESSION_COOKIE_AGE
特定会话的设置。使用SESSION_SAVE_EVERY_REQUEST = False
(默认),不会有功能差异。
在这两种情况下,会话活动都基于上次修改会话的时间(除非SESSION_SAVE_EVERY_REQUEST
is True
,在这种情况下,它会保存在每个请求中,因此它会在每个请求中有效地修改)
一个示例是,您可能希望应用程序的某个部分中的用户具有更长的会话到期时间,因此您可以request.session.set_expiry
在与该应用程序相关的视图中使用自定义值,然后request.session.set_expiry(SESSION_COOKIE_AGE)
在他们离开该特定部分时将其重置。