标签:tin 应用 声明 name 框架 哈希 设置 bsp port
如果我们有两个django应用site1和site2同时跑在同一个server的不同端口,同时我们在同一个浏览器的不同tab登录。那么这时就出出现这种情况,当我们登录site2时就会将site1上登录的用户踢下来。
为什么会出现这种情况呢?这跟django的session框架有关,这里做一个简单介绍:当我们第一次访问一个django网站时,django会生成一个session来保存当前会话的一些信息。同时会生成一个哈希值session_key并生成一个cookie发送给客户端,这个cookie的名字根据setting中SESSION_COOKIE_NAME设置,默认为“sessionid”(划重点)。这样下次请示session_key就会跟随cookie发送到server。server根据session_key查找对应session对象,获取当前会话的信息,当然也包括登录信息。
所以上面的情况真相只有一个(柯南推眼镜脸):
那么怎么解决呢,了解上面机制后,只需要在setting中设置SESSION_COOKIE_NAME即可。比如可以在site2中设置SESSION_COOKIE_NAME = ‘site2’,site1中用默认。当然同时设置site1和site2。
这里是老瘦家的儿子,如需转载请声明,我替老瘦感谢你
使同一个server上不同port的django应用可在同一个浏览器上打开
标签:tin 应用 声明 name 框架 哈希 设置 bsp port
原文地址:http://www.cnblogs.com/art-geek/p/6493304.html