【问题标题】:Auto logout using sessions in Django (outside views)使用 Django 中的会话自动注销(外部视图)
【发布时间】:2010-12-21 19:20:33
【问题描述】:

我正在尝试在 Django 应用程序中构建自动注销功能。

基本上,对于网站的每个请求,我都想在会话中设置当前时间戳(如果未设置),然后使用当前时间检查该值。如果差异太大,它应该重定向到注销。

是否有一种简单的方法可以为每个请求设置会话,而无需向我的每个视图添加功能? 我知道可以在视图之外使用会话,但是我必须提供 session_key,我不确定我应该从哪里得到它,或者自己生成它。

【问题讨论】:

标签: django


【解决方案1】:

我不确定您将哪个时间戳与此处的时间戳进行比较,或者为什么。

管理自动注销的常用方法是通过SESSION_COOKIE_AGE 设置简单地在会话cookie 上设置一个短暂的过期时间。如果 cookie 过期,如果用户尝试访问需要身份验证的页面,他们将自动被重定向到登录页面。

【讨论】:

  • 我只想在用户处于非活动状态时注销。例如,在 2 分钟不活动后注销用户。这个计时器应该在每次请求时重置(因此是时间戳)。
  • 是的,这是自动发生的。
  • 我找到了一个完全符合我需要的中间件类..djangosnippets.org/snippets/449 感谢您的回复
  • @DanielRoseman 不,它没有,至少对我来说不是。当新请求发生时,会话的生命周期不会延长。我将 SESSION_COOKIE_AGE 设置为 30 分钟,它每 30 分钟销毁一次 cookie。
猜你喜欢
  • 2012-06-11
  • 2022-12-22
  • 2016-05-17
  • 2017-09-30
  • 2019-09-30
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多