zc wsgi会话
zc.wsgisessions的Python项目详细描述
详细文档
会话
会话支持有两个方面:浏览器标识, 和会话存储。浏览器使用cookie进行标识;如果 未对传入请求设置cookie,响应将为将来设置cookie 请求。
会话数据使用持久会话数据容器存储,如 由 zope.session 包定义。实例被添加到 启动时数据库(如果不存在)。我们可以控制某些参数 通过将关键字参数传递给数据库初始值设定项。一跑 此测试使用默认设置,而第二个运行设置自定义 参数。
< Buff行情>>>> import re >>> import zc.wsgisessions.testing >>> import zc.wsgisessions.sessions >>> db_name = 'sessions' >>> if zc.wsgisessions.testing.TEST_DB_INIT: ... db_name = 'test' ... db = conn.get_connection(db_name).db() ... zc.wsgisessions.sessions.initialize_database( ... db, ... db_name=db_name, ... namespace='browserid_c0defeed', ... secret='0.10612221415937506119', ... timeout=(15 * 60), # 15 minutes ... resolution=60, # 1 minute ... )
[filter:sessions] use = egg:zc.wsgisessions0
[filter:sessions] use = egg:zc.wsgisessions1
如果配置包含设置为true的安全 https, secure 被添加到set cookie响应中。此外,httponly是 添加到set cookie响应,除非配置设置了 仅限http 为false。
< Buff行情>[filter:sessions] use = egg:zc.wsgisessions2
在过滤器配置中更改设置时(在 .ini 文件),将替换默认值。
< Buff行情>[filter:sessions] use = egg:zc.wsgisessions3
注意,上面的url方案是 而不是 https,但是设置了secure 因为它是在筛选器配置中请求的。
对于硒测试,我们需要重置httponly,因为我们正在使用 开发中的http url方案, secure (off)的默认值是 可以接受。注意,我们只在global中设置http 这次配置以覆盖中设置的值 .ini 文件。
< Buff行情>[filter:sessions] use = egg:zc.wsgisessions4
会话存储的数据库名在初始化数据库中设置为 会话 默认情况下,或提供给数据库名( 测试 第二次 运行这些测试)。如果我们试图将错误的数据库名称传递给 从配置中筛选(在 .ini 文件中),我们将得到一个错误。
< Buff行情>[filter:sessions] use = egg:zc.wsgisessions5
浏览器标识
支持cookies所需的信息也存储在 数据库:
< Buff行情>[filter:sessions] use = egg:zc.wsgisessions6
[filter:sessions] use = egg:zc.wsgisessions7
[filter:sessions] use = egg:zc.wsgisessions8
[filter:sessions] use = egg:zc.wsgisessions9
如果我们更改数据库中的机密,我们可以导致会话 标识IER待重新设置:
<阻塞率> AAAAAAA H20 AAAAAAAAA 21 啊! AAAAAAAAA 23 啊! AAAAAAAAA 23会话存储
一旦cookie从请求中加载或安排发送 有了响应,一个isession对象就存储在请求中。 让我们直接创建一个这样我们就可以看到它是如何工作的:
<阻塞率> 啊! 是啊。 AAAAAAAAA 28 AAAAAAA 29助手
<阻塞率> 次级方案30获取(请求,pkg-u id,key=none)
从会话中检索值;如果未指定键,则检索 sessionpkgdata容器。
<阻塞率> 啊! 啊! 是啊。 啊!指定pkg标识符和密钥名时,会话数据对象 如果它不存在,则不会创建。
<阻塞率> 啊!存储(请求、包-U ID、密钥、值)
将密钥/值对存储在会话中。
<阻塞率> 啊! AAAAAAA 37 AAAAAAAAA 38删除(请求,包-U id,密钥)
按键从会话中删除值。如果未指定pkg id, 使用zc.wsgisessions.sessions.key的默认pkg id。
<阻塞率> 啊! AAAAAAAAA 38 AAAAAAA 41如果底层会话数据映射没有创建 已经存在。
<阻塞率> AAAAAAA 42更改
0.6.1(2013-10-08)
- 在发行版中包含changes.txt。
0.6.0(2013-10-08)
- 添加 域 , 最大年龄 和 路径 配置选项。
0.5.1(2013-06-12)
开源版本。
0.5(2013-03-12)
- 使用加密的安全随机数源(os.urandom)进行 生成浏览器ID。
- 修复get/remove帮助程序中导致sessiondata对象的错误 不必要的创造。
0.4(2012-01-03)
- 接受用于会话存储的数据库名称参数。
0.3(2011-11-11)
- 按更合理的顺序放置参数以帮助函数。
- 需要pkg id来阻止错误的使用模式。
0.2(2011-11-10)
- 使http://only和secure可配置。
- 测试配置选项。
- 测试数据库初始化和选项。
0.1(2011-11-10)
初始版本