gpt4 book ai didi

python - Django:同一浏览器中的两个 session

转载 作者:太空狗 更新时间:2023-10-30 01:38:15 25 4
gpt4 key购买 nike

我有一个允许用户协作的 Django 网络应用程序。每个用户都会获得一个带有唯一代码的链接,他们单击该链接即可访问我的站点。在第一次访问页面时,我将这个唯一代码存储在 request.session 中,然后在随后的页面访问中检索它以识别数据库中的用户记录。我还在 request.session 中存储了有关用户及其 session 的各种其他信息。

我想允许两个 session 在同一浏览器的不同窗口/选项卡中发生。这是为了使测试更容易。我的同事花了很多时间测试同时使用该网站的多个用户。到目前为止,我一直在指示他们使用不同的浏览器或不同的浏览器配置文件,以便不共享 session cookie。但他们总是会忘记此说明(或做错),并在应用无法按预期运行时感到困惑。

我的想法是在每个URL中放入用户的唯一编码(称为user_id),然后将request.session分割到多个字典中,所以我基于类的观点会有这个:

def dispatch(...):
user_id = kwargs['user_id']
self.request_session = self.request.session[user_id]

然后像往常一样使用这个变量self.request_session:

    self.request_session['time_started'] = now
...

然后在返回我的响应之前,将其分配回去:

    self.request.session[user_id] = self.request_session

我认为这应该没问题,因为自己的代码会将两个 session 隔离在 2 个单独的字典中,但如果 Django(或什至第 3 方应用程序)在 request.session 中存储某些内容,它可能会崩溃。想知道是否有人建议用另一种方法来处理这个问题。

最佳答案

现代浏览器(例如 Firefox、Chromium、Brave 等)能够在不引用现有历史记录、cookie 等的情况下打开页面。

  • 在 Firefox 中,这称为“Private Browsing ”;你打开一个“私有(private)窗口”。

  • 在 Brave 中,这被称为“私有(private)标签”。

  • 在 Chromium 中,这称为“Incognito Mode ”。

通过使用其中任何一个,您可以创建一个新的“ session ”,该“ session ”将不会像任何其他登录 session 一样出现。这应该允许您一次拥有任意数量的 session 。

关于python - Django:同一浏览器中的两个 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21971234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com