时间:2019-04-30 来源:小程序工厂
这照样还是会冲突的,如果微信小程序A的cookie已经有一个值:appid=12345,那么用户再打开微信小程序B登录,就会重新生成一个appid=456789,会同时把微信小程序A cookie中的appid替换掉。
简单点描述:所有微信小程序的web-view组件是共享cookie的,就像我们同一个浏览器里,a.com和b.com同时跨域调用了api.com的API,这个API在COOKIE中生成一个SESSIONID,会同时作用到a.com和b.com。如果我想a.com和b.com在使用api.com下的资源保持独立的会话,那么我就需要两个不同进程的浏览器分别访问a.com和b.com。
而目前的情况是,微信小程序的web-view组件,是共享同一个http进程的,这样就避免不了的不同微信小程序之间COOKIE冲突的问题,而且可能存在安全问题,比如微信小程序B获取微信小程序A中调用API后所生成的SESSIONID,从而截取会话。
解决这个问题,就是每个微信小程序的web-view能够有独立的http进程/线程会话。
微信小程序调用登录api的时候应该会把appid带在header里发给服务器,服务器在回写的cookie字段里带上这个appid是不是就可以了?