Django用户会话,Cookie和超时

jde*_*ero 4 python django cookies session django-models

我正在使用Django应用程序,我目前的目标是用cookie跟踪用户会话.我有一种感觉,就像我一样,我的理解有点偏执.

对于初学者,我想管理自用户登录以来已经存在多长时间,这样如果他们在"x"小时内没有访问过新页面,我就可以成功将其注销.我不确定究竟是什么标准(对于社交网络).

这些信息是否存储在我的服务器上?Cookie实际上是否具有相关性?我之前使用过的cookie来存储像用户时区这样的东西,但是我很难处理如何跟踪用户的情况.

我目前在用户后端方面的所有内容都来自django.contrib.auth包.

我真正知道如何做到"抓住"用户的信息是通过使用像if request.user.is_authenticated():(等)的语句完成的.

我意识到这有点复杂,所以我会尝试缩小范围:

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

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

谢谢你的理解,

我知道当我不理解事情时,我会感到困惑.

谢谢你的时间,

詹姆士

Vir*_*put 7

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

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

 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.
Run Code Online (Sandbox Code Playgroud)

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