我这边一个 web 项目,需要 iframe 显示两个分公司的网站页面。但是实际上这两个分公司网站都是同一个 web 程序,应要求部署在同一个 web 网页地址,只不过是在授权登陆之后用一个“分公司状态”来进行区分分公司。
所以在操作 iframe 页面里面的时候,如果产生请求,这两个网站程序视为同一个网站,cookie 就会互窜,数据混在一起了。
想问一下能不能通过设置 iframe 就实现无痕模式。这样 cookie 应该就不会互窜了
1
cc1024 2022-02-11 13:37:11 +08:00 1
本身就是同一个程序,如项目采用 session 形式改造繁琐工作量大。
1.通过跨域形式访问,即主页面和 2 个 iframe 是完全独立的;缺点 iframe 里需要重新登录,且配置不方便,耦合度高。 2.不采用 session ,使用接口形式,以 API-AUTH 方式认证调用(或其他认证);缺点前后端不分离相当于重构。 3.通过拦截器,正确访问请求时,先获取当前使用者的分公司状态,重定向或设置指定参数,在业务逻辑中依据状态操作数据,从而达到分离的效果。 仅作参考非最优方案 |
2
Biwood 2022-02-11 13:44:32 +08:00 1
既然是两个公司,那么用两个域名不就好了。懒得新增域名的话,那只能给不同公司的 cookie 数据加前缀以进行隔离。
|
3
az22c OP > 既然是两个公司,那么用两个域名不就好了。懒得新增域名的话,那只能给不同公司的 cookie 数据加前缀以进行隔离。
@Biwood 其实 iframe 里面的是一个后管项目。切换分公司只是想看不同的分公司数据而已 |
4
az22c OP @cc1024 其实最基本的,iframe 里面的系统作为老系统,无论如何都绕不过要解决“不同分公司的 cookie 重名”的问题。
目前该后管系统正是基于 cookie session 机制,据说这个系统解决 cookie 重名问题很麻烦 |
5
dbolo123 2022-02-11 22:50:13 +08:00
有个思路不知道是否可行,不同分公司使用不同的 session name (就是存 session id 的 cookie name ),处理的时候动态修改这个 session name
|