在 N 分钟不活动后将用户从 Django 站点注销

新手上路,请多包涵

我在一个网站上工作,该网站要求我们在 N 分钟不活动后注销用户。使用 Django 有什么最佳实践吗?

原文由 Brian Tol 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 704
2 个回答

查看 会话中间件 及其设置。具体这两个:

SESSION_COOKIE_AGE

默认值:1209600(2 周,以秒为单位)

会话 cookie 的年龄,以秒为单位。

SESSION_SAVE_EVERY_REQUEST

默认值:假

是否在每次请求时保存会话数据。如果这是 False(默认),那么会话数据只有在它被修改时才会被保存——也就是说,如果它的任何字典值被分配或删除。

设置低 SESSION_COOKIE_AGE 并转向 SESSION_SAVE_EVERY_REQUEST 应该可以创建“滑动”到期。

原文由 Lance McNearney 发布,翻译遵循 CC BY-SA 2.5 许可协议

在 django 会话中间件中设置会话 cookie 年龄只是在传回浏览器的 set-cookie 标头中设置过期时间。只有浏览器遵守强制“注销”的到期时间。

根据您需要空闲注销的原因,您可能认为浏览器对到期时间的遵从性不够好。在这种情况下,您需要扩展会话中间件才能这样做。

例如,您可以在您的会话引擎中存储一个到期时间,您可以使用请求更新该时间。根据站点流量的性质,您可能希望在 X 秒内只写回会话对象一次,以避免过多的数据库写入。

原文由 MattH 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题