如何更改django会话使用的会话密钥?我想通过在URL中指定ID然后将该ID合并到会话密钥中来支持同一浏览器中的多个同时会话。
我试过简单:
request.session.session_key += key
但我得到AttributeError
说我“无法设置属性”。
答案 0 :(得分:1)
你可以通过编写自己的SessionMiddleware(基于Django的django.contrib.sessions.middleware.SessionMiddleware
)来实现这一目标,它支持查找和存储链接到同一用户的多个单独会话。
看一下SessionMiddlware的来源,它似乎很简单地通过'sessionid'的名称获取cookie(默认情况下),创建一个enging.SessionStore实例并将其存储为'session'属性请求实例。
理论上你可以做同样的事情来获取/设置你自己的cookie名称(即后缀为请求参数中传递的标识符),并将其存储在你自己的属性中(即request.custom_sessions)然后能够使用它请求实例可用的任何地方。