首页 文章

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

提问于
浏览
1

我希望在一段时间不活动后将用户注销 . 这个问题(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的作用吗?

1 回答

  • 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) 重置它部分 .

相关问题