我正在使用Django应用程序,我目前的目标是使用cookie跟踪用户会话。我有一种感觉,就像我一样,我的理解有点偏执。
对于初学者,我想管理自用户登录以来已经存在多长时间,如果他们没有访问“x中的新页面,我可以成功将其注销“ 小时。我不确定究竟什么是标准(对于社交网络)。
这些信息是否存储在我的服务器上? Cookie实际上是否具有相关性?我之前使用过的cookie来存储像用户时区这样的东西,但是我很难处理如何跟踪用户的问题。
我目前在用户后端方面的所有内容都来自django.contrib.auth包。
我真正知道如何通过使用if request.user.is_authenticated():
等语句来“抓取”用户的信息。
我意识到这是一个复杂的问题,所以我会尝试缩小范围:
如何扩展有关当前用户的现有信息以捕获“上次活动”,以便我们可以在一段时间内未使用该网站时将他/她注销? 我是否需要定义自定义用户模型?
我的下一步是创建一个不同类型的用户,所以我觉得我需要制作自定义用户模型 - 除了扩展普通用户表单以制作个人资料等。
感谢您的理解,
我知道当我不理解事情时,我会感到困惑。
感谢您的时间,
詹姆斯
答案 0 :(得分:7)
您可以配置session中间件以自动注销用户,
将SESSION_COOKIE_AGE
配置为某个较低的值,并将SESSION_SAVE_EVERY_REQUEST
提供为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.
要创建自定义/扩展User
个人资料Django 1.5,configurable User model附带,请查看docs以获取示例。