我正在研究在端口上运行的2个Django应用程序 - 8001和8002.但问题是当我点击第二个应用程序上的任何链接时,第一个应用程序让我注销,当我登录到第一个应用程序时,第二个应用程序让我退出。
会话冲突吗?任何人都可以建议我如何解决这个问题?
是的,会话冲突。 Cookie不是port-specific,即在端口A上运行的服务器可以读取和写入由端口B上运行的服务器设置的cookie,如果两者都在同一个域上。
由于Django使用名为sessionid
的名称作为会话cookie,你的django应用程序(我认为你的意思是项目?)都会覆盖这个cookie。
但是,Django允许您使用SESSION_COOKIE_NAME
设置为会话cookie使用特定名称。因此,您可以更改一个项目的cookie名称。
SESSION_COOKIE_NAME = 'sessionid_project1'
您可能还想使用CSRF_COOKIE_NAME
设置重命名csrf cookie以避免在那里发生冲突。