多页应用嵌入无界的情况分析

发布时间 2023-12-29 17:03:22作者: 脆皮鸡
  1. 初步研究了下V-SCM系统(或称:数字化供应链),是使用jQuery开发多页应用,通过nginx组织了各个页面,系统内部通过window.location.herf/a标签进行页面跳转,估计跳转登录页的逻辑就是看有无Cookie请求头字段,有进系统,无进登录页。
  2. 由于他不是单页应用(SPA,Single-Page-Application),跳转页面会导致iframe重载。
    1. 使用wujie正常模式进行嵌入时,在登录页检测到嵌入运行,会重置window.location.herf部分依赖导入失败,使用插件系统也没办法改写,嵌入失败。
    2. 使用wujie自带的降级模式,通过wujie的插件系统改写改系统的js,解决依赖问题,但是还是登录不进去,嵌入失败。
    3. 最终方案使用iframe原生标签加载他们的系统,他们做了限制使用了X-Frame-Options:SameSite的响应头字段,导致无法在跨域页面加载系统,嵌入失败,即便未来放开限制,嵌入后iframe也没办法保活,切换主应用路由也会导致iframe重新加载。
  3. 目前的想法是通过提前请求登录接口获取jwt,然后在访问他们的系统的时候添加Cookie的请求头中,然后完成nginx的登录认证进入系统,但是即便成功进入,系统的各种操作全都是跳转页面,都会导致主应用被替换成目标url。详情看下面图片。。。。。。。。嵌入难度MAX。

  1. 而且他是用jq写的代码,在他的基础上开发会十分十分麻烦,开发时间大幅度增加。
  2. 后续再看看有没有解决方案吧。