问题标签 [django-sessions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1798 浏览

django - Django 中 Memcached 上的会话 - Memcached 中没有项目

我正在使用 memcached 在 Django 中设置会话,登录后,缓存中没有出现任何项目。

我可以连接到我的 memcached 实例telnet localhost 11211stats说该进程正在运行。我的缓存设置如下:

我确实为缓存设置了数据库。会话显示在数据库中。(当使用时backends.cache,数据库或缓存中不显示任何内容。)

这是预期的行为吗?我是否必须在会话密钥中存储一些特殊的东西才能注册?

0 投票
2 回答
328 浏览

python - 允许用户同时使用多个帐户登录到同一个 Django 站点

我正在创建一个安装在各种不同站点上的小部件,并且每个站点都需要不同的用户。问题是,同一个人浏览可能会同时打开 2 个使用我的小部件的不同站点。这意味着我需要用户使用多个帐户同时登录到同一个 Django 站点。

据我了解,Django 通常假设每个会话只有 1 个用户登录。

解决这个问题的最简单和最有效的方法是什么?

0 投票
1 回答
298 浏览

django - 在客户端检查过时的会话

在 django 应用程序中,当会话由于超时而变得无效时不会产生信号

如果我想在会话超时后将我的客户端重定向到登录页面,那么让客户端 JavaScript 函数定期检查它是否仍有有效会话是一个坏主意吗?我没有看到任何其他方式,但我对网络编程完全陌生。

0 投票
2 回答
1328 浏览

django - Django注销并在不活动后重定向

通过设置 SESSION_COOKIE_AGE 并打开 SESSION_SAVE_EVERY_REQUEST,它将在一段时间不活动后将人员注销。但是,在说 5 分钟不活动后,是否有重定向?

0 投票
6 回答
15356 浏览

python - 在 Django 中删除特定用户的所有会话的最优化方法?

我正在使用 Sessions Middleware 和 Auth Middleware 运行 Django 1.3:

每次用户从不同的位置(不同的计算机/浏览器)登录时,Session()都会创建一个新的并使用唯一的session_id. 这可能导致同一用户有多个数据库条目。他们的登录在该节点上持续存在,直到 cookie 被删除或会话到期。

当用户更改密码时,我想从数据库中删除该用户的所有未过期会话。这样,在更改密码后,他们将被迫重新登录。这是出于安全目的,例如如果您的计算机被盗,或者您不小心让自己登录在公共终端上。

我想知道优化它的最佳方法。这是我的做法:

一个非常简化的视图:

正如您在 中看到的sessions_helpers.py,我必须将每个未过期的会话拉出数据库,Session.objects.filter(expire_date__gte=datetime.datetime.now())解码所有会话,然后检查它是否与用户匹配。如果其中存储了 100,000 多个会话,这对数据库来说将是非常昂贵的。

有没有一种对数据库更友好的方法来做到这一点?是否有 Sessions/Auth Middleware 设置可以让您将用户名存储为 Sessions 表中的列,以便我可以针对它运行 SQL,或者我是否必须修改 Sessions 才能做到这一点?开箱即用它只有session_keysession_dataexpire_date列。

感谢您提供的任何见解或帮助。:)

0 投票
1 回答
533 浏览

django - 基于 Django 密钥的会话过期

我有一个网站,其中包含针对不同类型用户的多个规则集。规则之一(权限)取决于会话到期。

例如,当浏览器关闭时,必须刷新未经身份验证的用户会话,但是,经过身份验证的用户会话应该存在一个恒定的时间。

此外,对于经过身份验证的用户,会话中的一些密钥可能会在浏览器关闭时被删除,但其他的应该保持活动状态。

如何在 Django 中实现这种基于密钥的会话过期?

0 投票
1 回答
1953 浏览

python - Django:使用 post_delete 信号时确定正在删除的用户

我希望在删除某些对象时通知管理员,但我还想确定哪个用户正在执行删除。

可能吗?

这是代码:

0 投票
2 回答
2859 浏览

django - 有没有简单的方法在 Django 中编码 json 数据?

我将从 OpenID 提供者那里得到这样的数据:

如何获取这些数据?

0 投票
3 回答
4414 浏览

django - 在 View 中使用 redirect() 时会话 ID 发生变化

我有一个带有用于站点搜索的表单的页面。该表单使用 POST 动词来提交要搜索的数据。提交后,搜索结果显示在表单下方。

为了解决 IE 上的“页面已过期”问题,我使用了所谓的 PRG 模式 (http://en.wikipedia.org/wiki/Post/Redirect/Get)。所以我从我视图的 post() 方法返回 django.shortcuts.redirect() ,该方法重定向到相同的 URL。

问题是,在生产中,我看到与 302 响应后发送的 GET 请求相关的不同会话 ID。由于我将表单存储在会话中以便能够将结果拆分为页面,因此我得到的结果不一致。

我在 apache/mod_wsgi 下运行 django。apache 配置为最多运行 3 个进程。

它不会在我重新启动 httpd 后立即发生,并且它似乎是在 httpd 进程消耗的内存量达到某个限制后开始发生的。

我通过反复按下提交按钮来检查这一点,表单从会话中填充,因此我可以看到我输入的搜索字符串。当会话更改时,表单返回空白。因此,当这种情况开始发生时,表单会连续成功填充 2 次,当我第三次按下提交时,它返回空白,这意味着服务器返回了新的会话 cookie。这似乎与 ServerLimit 设置有关。

怎么了?有任何想法吗?

谢谢

康斯坦丁

0 投票
2 回答
936 浏览

django - 在会话中存储 QueryDict 后无法 urlencode()

我试图将此发布到 django-users 组(http://groups.google.com/group/django-users/browse_thread/thread/8572d7f4075cfe0e)但没有得到任何回复。也许在这里我会得到更多的帮助。

我存储request.GET在会话中:

然后我在另一个页面中检索值并尝试对 QueryDict 进行 urlencode:

在我的上下文中,我得到了 QueryDict 对象的 python 字符串表示,而不是预期的key0=value0&key1=value1&... 字符串。

如果我将 urlencoded 字符串存储在会话中,而不是 QueryDict,则一切正常:

这是一个错误吗?