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

本文探讨了如何在Flask项目A和B部署在同一服务器且共用域名时,通过修改session cookie名解决访问控制问题。作者分享了尝试过的解决方案,如路径更改、cookie存储位置设置,最终发现通过设置不同项目特定的session_cookie_name来隔离session。
摘要由CSDN通过智能技术生成

问题现象:

项目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'

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值