若是咱们有两个django应用site1和site2同时跑在同一个server的不一样端口,同时咱们在同一个浏览器的不一样tab登陆。那么这时就出出现这种状况,当咱们登陆site2时就会将site1上登陆的用户踢下来。django
为何会出现这种状况呢?这跟django的session框架有关,这里作一个简单介绍:当咱们第一次访问一个django网站时,django会生成一个session来保存当前会话的一些信息。同时会生成一个哈希值session_key并生成一个cookie发送给客户端,这个cookie的名字根据setting中SESSION_COOKIE_NAME设置,默认为“sessionid”(划重点)。这样下次请示session_key就会跟随cookie发送到server。server根据session_key查找对应session对象,获取当前会话的信息,固然也包括登陆信息。浏览器
因此上面的状况真相只有一个(柯南推眼镜脸):cookie
那么怎么解决呢,了解上面机制后,只须要在setting中设置SESSION_COOKIE_NAME便可。好比能够在site2中设置SESSION_COOKIE_NAME = ‘site2’,site1中用默认。固然也可同时设置site1和site2。session
这里是老瘦家的儿子,如需转载请声明,我替老瘦感谢你框架