设置会话密钥

时间:2013-12-01 00:07:02

标签: django django-sessions

如何更改django会话使用的会话密钥?我想通过在URL中指定ID然后将该ID合并到会话密钥中来支持同一浏览器中的多个同时会话。

我试过简单:

request.session.session_key += key

但我得到AttributeError说我“无法设置属性”。

1 个答案:

答案 0 :(得分:1)

你可以通过编写自己的SessionMiddleware(基于Django的django.contrib.sessions.middleware.SessionMiddleware)来实现这一目标,它支持查找和存储链接到同一用户的多个单独会话。

看一下SessionMiddlware的来源,它似乎很简单地通过'sessionid'的名称获取cookie(默认情况下),创建一个enging.SessionStore实例并将其存储为'session'属性请求实例。

理论上你可以做同样的事情来获取/设置你自己的cookie名称(即后缀为请求参数中传递的标识符),并将其存储在你自己的属性中(即request.custom_sessions)然后能够使用它请求实例可用的任何地方。