4

我正在使用 Django 应用程序,我目前的目标是使用 cookie 跟踪用户会话。我有一种感觉,与往常一样,我对如何做到这一点的理解有点偏离。

对于初学者,我想管理用户登录以来的时间,这样如果他们在“x”小时内没有访问新页面,我可以成功注销他们我不确定究竟是什么标准(对于社交网络)。

这些信息是否存储在我的服务器上?cookie 在这里真的有任何相关性吗?我以前使用 cookie 来存储用户的时区等内容,但我正在努力处理如何跟踪用户。

我目前在用户后端方面所拥有的全部来自django.contrib.auth包。

在“获取”用户信息方面,我真正知道如何做的唯一一件事是使用诸如if request.user.is_authenticated():(等)之类的语句来完成。

我意识到这是一个有点复杂的问题,所以我将尝试缩小范围:

如何扩展有关当前用户的现有信息以捕获“上次活动”,以便如果他们在特定时间段内未使用该网站,我可以将他/她注销?我需要定义自定义用户模型吗?

我的下一步是创建不同类型的用户,所以我觉得我需要制作自定义用户模型——不仅仅是扩展普通用户表单来制作个人资料等。

感谢您的理解,

我知道当我不明白的时候我会感到困惑。

谢谢你的时间,

詹姆士

4

1 回答 1

7

您可以配置会话中间件以自动注销用户,将 , 配置SESSION_COOKIE_AGE为某个较低的值,并将 , 提供SESSION_SAVE_EVERY_REQUESTTrue.

这将在某些不活动后自动注销用户,而无需扩展配置文件。

 SESSION_COOKIE_AGE
 Default: 1209600 (2 weeks, in seconds)
 >> The age of session cookies, in seconds.

 SESSION_SAVE_EVERY_REQUEST
 Default: False
 >> Whether to save the session data on every request. 
 If this is False (default), then the session data will only be saved if it has been modified – that is, if any of its dictionary values have been assigned or deleted.

对于创建自定义/扩展User配置文件,Django 1.5带有可配置的用户模型,请查看文档以获取示例。

于 2013-07-23T07:24:43.993 回答