问题标签 [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.
django - Django 中 Memcached 上的会话 - Memcached 中没有项目
我正在使用 memcached 在 Django 中设置会话,登录后,缓存中没有出现任何项目。
我可以连接到我的 memcached 实例telnet localhost 11211
并stats
说该进程正在运行。我的缓存设置如下:
我确实为缓存设置了数据库。会话显示在数据库中。(当使用时backends.cache
,数据库或缓存中不显示任何内容。)
这是预期的行为吗?我是否必须在会话密钥中存储一些特殊的东西才能注册?
python - 允许用户同时使用多个帐户登录到同一个 Django 站点
我正在创建一个安装在各种不同站点上的小部件,并且每个站点都需要不同的用户。问题是,同一个人浏览可能会同时打开 2 个使用我的小部件的不同站点。这意味着我需要用户使用多个帐户同时登录到同一个 Django 站点。
据我了解,Django 通常假设每个会话只有 1 个用户登录。
解决这个问题的最简单和最有效的方法是什么?
django - 在客户端检查过时的会话
在 django 应用程序中,当会话由于超时而变得无效时不会产生信号
如果我想在会话超时后将我的客户端重定向到登录页面,那么让客户端 JavaScript 函数定期检查它是否仍有有效会话是一个坏主意吗?我没有看到任何其他方式,但我对网络编程完全陌生。
django - Django注销并在不活动后重定向
通过设置 SESSION_COOKIE_AGE 并打开 SESSION_SAVE_EVERY_REQUEST,它将在一段时间不活动后将人员注销。但是,在说 5 分钟不活动后,是否有重定向?
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_key
、session_data
和expire_date
列。
感谢您提供的任何见解或帮助。:)
django - 基于 Django 密钥的会话过期
我有一个网站,其中包含针对不同类型用户的多个规则集。规则之一(权限)取决于会话到期。
例如,当浏览器关闭时,必须刷新未经身份验证的用户会话,但是,经过身份验证的用户会话应该存在一个恒定的时间。
此外,对于经过身份验证的用户,会话中的一些密钥可能会在浏览器关闭时被删除,但其他的应该保持活动状态。
如何在 Django 中实现这种基于密钥的会话过期?
python - Django:使用 post_delete 信号时确定正在删除的用户
我希望在删除某些对象时通知管理员,但我还想确定哪个用户正在执行删除。
可能吗?
这是代码:
django - 有没有简单的方法在 Django 中编码 json 数据?
我将从 OpenID 提供者那里得到这样的数据:
如何获取这些数据?
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 设置有关。
怎么了?有任何想法吗?
谢谢
康斯坦丁
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,则一切正常:
这是一个错误吗?