欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

flask的同一ip域名不同端口的两个网站session冲突

发布时间:2025/4/5 编程问答 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 flask的同一ip域名不同端口的两个网站session冲突 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

问题现象:

项目A和项目B,部署在同一台服务器下,使用相同的域名,他们的访问方式类似于下面这样:
http://test.domain.com/A/index.jsp
http://test.domain.com/B/index.jsp

A项目中有个链接到B项目的链接(用户名和密码放在参数里,到B项目中的方法中验证,组装user并设置到session里),
当在A项目中点击了链接后会将B的页面内嵌在A系统中,再次点击A项目的其他菜单时退出到登录页面

问题解决之前做的内容:

(本人是flask初学者)
1.更改项目路径:
百度搜到说cookie不区分端口号,可以根据请求路径不同,cookie存储的内容不同,但是我更改了请求路径,没用
2.设置A,B两个网站的cookie为不同存储位置:
百度了半天说通过js能更改路径,可能是技术不精,无济于事
3.百度说更改sessionid,找了半天,不知道说的是什么

经过冷静分析发现了问题的原因:

问题原因:

先看A网站和B网站的再浏览器中的cookie的key值,可以通过EditThisCookie这个谷歌插件去看(不懂的和不会使用的可以去百度一下),访问这A、B这两个网站,查看A和B的cookie的key都为session

这是因为什么呢?
在flask的配置中,有这么几个配置项:

app.config['SESSION_COOKIE_NAME'] = '''SESSION_COOKIE_NAME': 'session', # 默认'SESSION_COOKIE_DOMAIN': None,'SESSION_COOKIE_PATH': None,'SESSION_COOKIE_HTTPONLY': True,'SESSION_COOKIE_SECURE': False,'SESSION_REFRESH_EACH_REQUEST': True,'PERMANENT_SESSION_LIFETIME': timedelta(days=31),

看到了吗,*‘SESSION_COOKIE_NAME’*的值默认为session,那么我们接下来的任务就是去更改他默认的值,在我们的两个项目中,例如A项目添加下面这样的配置:

app.config['SESSION_COOKIE_NAME']="sessionA"

在B项目中添加:

app.config['SESSION_COOKIE_NAME'] = 'sessionB'

这样就可以了,sessionA和sessionB这两个名字是我自己定义的,大家可以根据自己的特点去定义,只要两个名字不一样就可以

问题解决了,留个一键三连再走吧,小哥哥小姐姐们,mua

总结

以上是生活随笔为你收集整理的flask的同一ip域名不同端口的两个网站session冲突的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。