首页 > 解决方案 > 本地安装的 2 个 django 应用程序在同一浏览器上无法正常工作,面临登录/注销问题

问题描述

我正在开发 2 个在端口 8001 和 8002 上运行的 Django 应用程序。但问题是当我单击第二个应用程序上的任何链接时,第一个应用程序让我注销,当我登录到第一个应用程序时,第二个应用程序让我退出。

有会话冲突吗?谁能建议我如何解决这个问题?

标签: pythondjangosession

解决方案


是的,存在会话冲突。Cookie 不是特定于端口的,运行在端口 A 上的服务器可以读取和写入运行在端口 B 上的服务器设置的 cookie,如果两者都在同一个域中。

由于 Django 使用会话 cookie 的名称sessionid,因此您的两个 django 应用程序(我认为您的意思是项目?)都覆盖了这个 cookie。

但是,Django 允许您使用设置为会话 cookie 使用特定名称SESSION_COOKIE_NAME。因此,您可以更改一个项目的 cookie 名称。

SESSION_COOKIE_NAME = 'sessionid_project1'

您可能还想使用CSRF_COOKIE_NAME设置重命名 csrf cookie 以避免在那里发生冲突。


推荐阅读