python - 本地安装的 2 个 django 应用程序在同一浏览器上无法正常工作,面临登录/注销问题
问题描述
我正在开发 2 个在端口 8001 和 8002 上运行的 Django 应用程序。但问题是当我单击第二个应用程序上的任何链接时,第一个应用程序让我注销,当我登录到第一个应用程序时,第二个应用程序让我退出。
有会话冲突吗?谁能建议我如何解决这个问题?
解决方案
是的,存在会话冲突。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 以避免在那里发生冲突。
推荐阅读
- c# - 如何将 System::^array 从 C# 函数转换为 C++ 中的等效数据类型
- java - 升级到 Hibernate 5 和配置 EhCache 不起作用。JCache 现在?
- mysql - MySQL 8 - 计算年度指标
- html - 需要帮助在 Hugo 页面中插入图片?
- c - 更新指针值是否会影响早期的分配
- codeigniter - Codeigniter 选择、计数和显示二维数组
- c# - CPU、内存使用、线程池使用 - ASP NET 核心身份未确认邮件用户删除处理 - 在应用程序或单独的应用程序?
- bash - 如何解决使用 wget 从 unix 服务器向仪表板发送 JSON 数据时产生的错误
- javascript - 如何排列具有固定列数的 Angular 表单字段?
- css - 使用 CSS 掩码仅屏蔽元素的一部分