【发布时间】:2020-04-07 11:34:00
【问题描述】:
我有两个应用程序在具有不同端口的同一台服务器上运行,它们的 SQLite DB 也不同,用于存储用户会话数据。
if request.session.exists(stored_session_key) and stored_session_key != request.session.session_key:
Session.objects.get(session_key=stored_session_key).delete()
request.user.logged_in_user.session_key = request.session.session_key
request.user.logged_in_user.save()
我正在使用这个条件,删除同一用户的上一个会话以从以前的设备注销并保持在当前设备的登录。
这按预期工作。
但我有两个逻辑相同的项目。
问题:
当我在同一个浏览器上打开两个应用程序时(例如:在 chrome 中,tab-1:https://ip_address:8000,tab-2:https://ip_adress:8001),我可以一次登录到一个应用程序。当我尝试登录应用程序二(甚至打开应用程序二的登录页面)时,应用程序一正在注销。
为什么会出现这种行为以及如何解决?
我的假设:
当我在同一个浏览器中登录新应用程序时,浏览器正在向同一个正在运行的应用程序发送不同的 session_key?
【问题讨论】:
标签: python django google-chrome session