Django用户会话、Cookies和Timeou

2024-03-28 11:40:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个Django应用程序,我当前的目标是用cookies跟踪用户会话。我有一种感觉,和往常一样,我对自己是如何做到这一点的理解有点模糊。

首先,我想管理用户登录后的时间,这样,如果他们在“x”小时内没有访问新页面,我就可以成功地将他们注销。我不确定(社交网络)的标准是什么。

这是我存储在服务器上的信息吗?曲奇在这里真的有关联吗?我以前用过cookies来存储用户的时区之类的东西,但我很难处理如何跟踪用户。

就用户后端而言,我目前所拥有的一切都来自django.contrib.auth包。

我真正知道如何“抓取”用户信息的唯一方法是使用诸如if request.user.is_authenticated():(等等)之类的语句。

我意识到这是个复杂的问题,所以我会尽量缩小范围:

如何扩展当前用户的现有信息以捕获“最后活动”,以便在用户在某段时间内未使用该站点时将其注销? 是否需要定义自定义用户模型?

我接下来的步骤是创建一个不同类型的用户,因此我觉得我需要定制用户模型-不仅仅是扩展普通的用户表单来创建配置文件等。

谢谢你的理解

我知道当我不明白事情的时候我会很困惑。

谢谢你的时间

詹姆斯


Tags: django用户模型网络信息应用程序目标标准
1条回答
网友
1楼 · 发布于 2024-03-28 11:40:17

您可以配置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以获取示例。

相关问题 更多 >