问题标签 [gae-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 投票
1 回答
1374 浏览

google-app-engine - 如何仅使用 SID 获取当前会话?

如何仅使用会话标识符 (SID) 检索会话?我正在使用gae-sessions

更新回复@David Underhill:

我已经按照你的建议做了,但在调试模式下我得到了这个: Session: SID=None {} |但它db_key填充了一个字符串。

这是我的代码:

上传.py

用户.py

并且不存在。

这是我的 cookie 中的 SID:

“mMumLZOCq5knTg9edaSjLD + p8xsSohAQSS9vyqpgDso = 1289155992_9c2c85c6931a7d133f7e1f0b9ae25502gAJ9cQB9cQEoVQ5hY2NvdW50LmxvZ2dlZHECiFUIdXNlci5rZXlxA1UjYWd0MGIzUjBlWE4zYjNKc1pISUxDeElFVlhObGNoaTNBUXdxBFULYWNjb3VudC5rZXlxBVUnYWd0MGIzUjBlWE4zYjNKc1pISU9DeElIUVdOamIzVnVkQmkyQVF3cQZVDWFjY291bnQuZW1haWxxB1UBdHEIdYZxCS4 =”

我使用 JavaScript 和 Flex 从 cookie 中获取它,然后将其以变量的形式发送到 Python。

0 投票
1 回答
271 浏览

python - gae 会话和鼻子的错误

在将 gae 会话添加到相对成熟的 GAE 应用程序时,我遇到了一些问题。我仔细阅读了自述文件并查看了演示。

首先,在使用nose 和nose-gae 运行测试时,仅将gaesesions 目录添加到我的应用程序会导致以下错误:

所有测试都运行良好,所以不是大问题,但表明有些地方不对劲。

接下来,如果我添加以下两行代码:

并运行我的测试,然后我收到以下错误:

开发服务器上不会发生此错误。

任何有关解决上述问题的建议将不胜感激。

0 投票
1 回答
396 浏览

django - App Engine / Django - 交错干扰 GAE 会话的多个请求

我正在使用 Django 在 App Engine 上运行 python 应用程序。此外,我正在使用一个名为gae-sessions. 如果threadsafe设置为"no",则没有问题,但是当threadsafe设置为时"yes",我偶尔会看到会话丢失的问题。

我看到的问题是,当启用踩踏时,多个请求偶尔会在 GAE-Sessions 中间件中交错。

gae-sessions库中,有一个名为 的变量_tls,它是一个threading.local()变量。当用户向网站发出http请求时,process_request()首先运行一个被调用的函数,然后为当前页面生成一堆自定义的html,然后process_response()运行一个被调用的函数。状态被记住在“线程安全”变量中process_request和之间。我可以通过打印出值(例如)来检查变量的唯一性。 process_response_tls_tls_tls"<thread._local object at 0xfc2e8de0>"

我偶尔目睹的是,在 GAE-Sessions 中间件中似乎是一个线程(推断为单个线程,因为它们对于 thread_local 对象具有相同的内存位置,并通过数据一个请求似乎覆盖了另一个请求的数据),多个 http 请求正在交错。给定同时发出请求的 User1 和 User2,我见证了以下执行顺序:

鉴于上述情况,User2 会话踩踏了一些内部变量并导致 User1 的会话丢失。

所以,我的问题如下: 1)在 App-Engine/Django/Python 的中间件预期行为中,不同请求是否交错?(或者我完全糊涂了,这里还有其他事情发生)2)这种交错发生在什么级别(App-Engine/Django/Python)?

看到这种行为我感到非常惊讶,因此有兴趣了解这里发生的原因/情况。

0 投票
1 回答
1308 浏览

python - AppEngine/Python NDB 密钥顺序

我有一个有趣的问题,仅在升级我的代码以使用 NDB 后才出现。

我正在使用gae-sessions,它将会话到期时间编码为存储在数据库中的每个 Session 的密钥。例如,密钥将具有以下格式:1363968220_6ea52c936f16fc557c0c03a5f276a056 其中前 10 个字符表示会话到期的时间戳(值 1363968220 编码“2013-03-22 16:03:40”)。

在升级到 NDB 之前,删除过期会话的代码可以正常工作。升级后,代码错误地消除了未过期的会话。代码如下:

这将产生以下输出:

如果这些键被视为字符串(使用字符串排序/优先规则),那么被删除的键(以 1363924467 开头)不应视为小于我们要过滤的键(以 1363362698 开头),所以我是对 NDB 中发生的事情感到困惑,这会导致它无法正常工作。

0 投票
0 回答
178 浏览

python - gaesessions 找不到“current_session”属性

我正在使用 gaesessions。当我尝试通过执行检查当前会话时,get_current_session()出现以下错误:

我已经创建了 appengine_config.py 文件,这里是:

我通过在 python 解释器上运行 os.urandom(64) 创建了 COOKIE_KEY。我不知道是什么原因造成的,因为我看到了一个关于这个问题的问题,它说你必须创建appengine_config.py文件并配置中间件,但它已经完成了。

OBS:我没有在我的 GAE 应用程序上使用 Python27。

有任何想法吗?谢谢你。

0 投票
1 回答
754 浏览

python - gae-sessions 'thread._local' 对象没有属性 'current_session'

我正在尝试让 gae 会话正常工作,但遇到了问题。

我已经在 appengine_config.py 和 webapp_add_wsgi_middleware 内部登录,它正在被调用。

我已经登录了库__init__.py并且它正在运行__init____call__并且my_start_response在 SessionMiddleware 中没有问题。

我的问题是我第二次尝试实际使用会话:

我明白了:

0 投票
1 回答
592 浏览

python - 在 appengine 中使用 pytest 和 gaesessions 会话中间件

当我运行时py.test --with-gae,我收到以下错误(我安装了 pytest_gae 插件):

我正在使用 pytest 来测试我的 google appengine 应用程序。当在 localhost SDK 中运行或部署到 GAE 服务器时,应用程序运行良好。我只是不知道如何使 pytest 与 gaesessions 一起工作。

我的代码如下:

test_handlers.py

appengine_config.py

来自 gaesessions 的相关代码:

0 投票
1 回答
28 浏览

google-app-engine - 应用引擎更新用户的所有会话

在我的 gae 应用程序中,用户可以执行操作(购买东西)。我需要在多个设备/浏览器上来自该用户的所有会话的所有请求持久存储并立即可用的信息。我正在使用 webapp2_extras 会话。我正在考虑这样做的方式是:

1) 将 action_happened 字段添加到 User 模型并通过将其添加到 webapp2_extras.auth['user_attributes'] 配置中的列表使其在会话中可用。但除非用户在所有会话中注销,否则这不起作用。

或 2) 为每个用户创建一个 memcache 条目(由数据存储支持),如 user_id_action_happened 并检查每个请求的真或假。这是我的首选方法。

有没有其他方法可以做到这一点?