V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
az22c
V2EX  ›  浏览器

iframe 能开无痕模式吗?

  •  
  •   az22c · 2022-02-11 11:49:59 +08:00 · 2501 次点击
    这是一个创建于 1022 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我这边一个 web 项目,需要 iframe 显示两个分公司的网站页面。但是实际上这两个分公司网站都是同一个 web 程序,应要求部署在同一个 web 网页地址,只不过是在授权登陆之后用一个“分公司状态”来进行区分分公司。

    所以在操作 iframe 页面里面的时候,如果产生请求,这两个网站程序视为同一个网站,cookie 就会互窜,数据混在一起了。

    想问一下能不能通过设置 iframe 就实现无痕模式。这样 cookie 应该就不会互窜了

    第 1 条附言  ·  2022-02-11 20:24:37 +08:00
    其实 iframe 里面的是一个后管项目。后管切换分公司只是想看不同的分公司数据而已。所以如果把(同一个程序)不同分公司部署到不同域名,维护起来非常麻烦
    6 条回复    2022-02-11 22:51:25 +08:00
    cc1024
        1
    cc1024  
       2022-02-11 13:37:11 +08:00   ❤️ 1
    本身就是同一个程序,如项目采用 session 形式改造繁琐工作量大。
    1.通过跨域形式访问,即主页面和 2 个 iframe 是完全独立的;缺点 iframe 里需要重新登录,且配置不方便,耦合度高。
    2.不采用 session ,使用接口形式,以 API-AUTH 方式认证调用(或其他认证);缺点前后端不分离相当于重构。
    3.通过拦截器,正确访问请求时,先获取当前使用者的分公司状态,重定向或设置指定参数,在业务逻辑中依据状态操作数据,从而达到分离的效果。

    仅作参考非最优方案
    Biwood
        2
    Biwood  
       2022-02-11 13:44:32 +08:00   ❤️ 1
    既然是两个公司,那么用两个域名不就好了。懒得新增域名的话,那只能给不同公司的 cookie 数据加前缀以进行隔离。
    az22c
        3
    az22c  
    OP
       2022-02-11 16:11:54 +08:00
    > 既然是两个公司,那么用两个域名不就好了。懒得新增域名的话,那只能给不同公司的 cookie 数据加前缀以进行隔离。

    @Biwood 其实 iframe 里面的是一个后管项目。切换分公司只是想看不同的分公司数据而已
    az22c
        4
    az22c  
    OP
       2022-02-11 20:31:03 +08:00
    @cc1024 其实最基本的,iframe 里面的系统作为老系统,无论如何都绕不过要解决“不同分公司的 cookie 重名”的问题。

    目前该后管系统正是基于 cookie session 机制,据说这个系统解决 cookie 重名问题很麻烦
    dbolo123
        5
    dbolo123  
       2022-02-11 22:50:13 +08:00
    有个思路不知道是否可行,不同分公司使用不同的 session name (就是存 session id 的 cookie name ),处理的时候动态修改这个 session name
    dbolo123
        6
    dbolo123  
       2022-02-11 22:51:25 +08:00
    @dbolo123 处理的时候根据参数识别是哪个分公司,然后动态设置对应的 session name
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5540 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 08:22 · PVG 16:22 · LAX 00:22 · JFK 03:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.