我可以阻止Django用户登录会话到期吗?

时间:2011-04-08 15:31:07

标签: django cookies django-sessions

我正在使用Django 1.2.5的网站上工作。它使用Django身份验证后端来记录和退出用户。反过来,这使用Django会话框架来设置cookie。 Django的会话后端设置的cookie似乎在2周后到期。我收到了用户的抱怨,他们正在退出帐户并且必须重新登录,我怀疑这是因为Cookie会在2周后过期。我有SESSION_COOKIE_AGE到1年(即31556926秒),但我不知道这是否是这个问题的最佳解决方案 - 我不确定它是否会产生无意的副作用。

有没有办法让用户无限期地登录(即,在他们手动注销之前让他们登录)?我没有找到设置,但任何解决方案(例如,中间件等)都是可以接受的。

2 个答案:

答案 0 :(得分:1)

延长会话寿命的唯一方法是使用寿命更长的cookie。每种其他用户识别方法(例如IP +用户代理)都存在歧义,因此存在安全问题。

答案 1 :(得分:1)

我创建了一个简单的中间件,可以定期更新用户会话cookie,从而消除了所描述的问题。

https://github.com/IlyaSemenov/django-everlasting-sessions