多个 vue.js 做的后台集中到一起展示并鉴权 的实现思路? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
justfly
V2EX    问与答

多个 vue.js 做的后台集中到一起展示并鉴权 的实现思路?

  •  
  •   justfly 2017-07-06 14:55:02 +08:00 4648 次点击
    这是一个创建于 3070 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的需求大概是这样的:

    1. 公司有很多的子系统 ( A, B, C, ...)
    2. 每个子系统都会有一个 vue 项目做配置后台
    3. 让这些子系统后台可以根据权限动态展示到一个项目中 ( 如某人有 A.1 A.2 B.1 C.2 三个系统 4 个权限)

    这样的好处是维护人员不用频繁的切系统,更直观。

    这就需要这个总的 vue 项目可以根据用户权限动态加载子系统 vue 项目的 component,动态增加路由。

    我的思路:动态路由的增加还好说,有现成的 API。但是动态加载其他系统的 component,需要新页面在这里注册一下,指明页面的 vue 单文件组件 文件所在的 URL,用户访问到时,获取该组件并渲染。

    问题是:目前的 vue 异步组件并不支持加载任意一个位置的 vue 组件,组件要么整体打包在一个 js 里面被浏览器一次性加载,要么用 require 语法让 webpack 给分隔好放在服务器,懒加载。这两种都必须要求所有子系统前端维护成一个大项目,这样开发部署都会牵一发动全身,不想这样实现。

    各位有什么好办法,或者这个思路有问题?感觉这个问题还是一个蛮普遍的问题。

    7 条回复    2017-07-06 16:08:06 +08:00
    wangxiaoer
        1
    wangxiaoer  
       2017-07-06 15:22:16 +08:00
    为啥要把老的组件融起来?开一个新的页面(项目),权限判断好之后直接跳转到老的现成的页面不行吗?
    justfly
        2
    justfly  
    OP
       2017-07-06 15:24:41 +08:00
    @wangxiaoer 你是说用 iframe?
    IJustmaogepao
        3
    IJustmaogepao  
       2017-07-06 15:33:15 +08:00
    他的意思应该是直接跳地址吧,类似新做个页面类似导航
    wangxiaoer
        4
    wangxiaoer  
       2017-07-06 15:41:55 +08:00
    @justfly 跟 frame 关系不大,就是类似 @IIJustmaogepao 说的根据用户身份生成的导航页,跳到对应原有的页面。

    当然,如果原有配置页面风格不同,而你又想统一的话,可能需要 frame 这种办法,再加上 js 做些手脚(比如把原有页面的页头、页脚去掉)啥的。
    wangxiaoer
        5
    wangxiaoer  
       2017-07-06 15:44:56 +08:00
    即使采用你原有的思路,我觉得动态路由也是没有必要的,只需要按照用户身份隐藏、显示对应的操作入口就行。因为权限的判定肯定要后端做的。

    上面说的跳转可能遇到的问题就是各个系统有各自的地址、各自的验证接口,这样难点反倒在于单点登录,不过我想这个应该可以通过反向代理解决吧。
    justfly
        6
    justfly  
    OP
       2017-07-06 16:01:21 +08:00
    @wangxiaoer 谢谢你的想法。

    设计中是有一个单点的鉴权系统的,前端根据鉴权结果决定哪些入口不显示,后端 API 都跟鉴权系统交互判断权限。

    跳各个子系统是没有问题的。而我想的是这个系统的 「边栏」 显示用户所拥有的各个子系统权限的汇总,右边局部渲染子系统的页面,不需要跳来跳去,给人感觉是一个独立的项目。如果只是一个导航页,用户就会在不同站点之间切换,每个站点就算风格统一,边栏的菜单列表也不尽相同,给用户的感觉不如第一种好
    wangxiaoer
        7
    wangxiaoer  
       2017-07-06 16:08:06 +08:00
    @justfly 那就 iframe 最简单暴力。

    新的页面设计好,比如边栏放权限汇总菜单之类,这是新功能,不冲突。右边根据用户操作把原有页面塞到 iframe 里面,这种情况下可能原有页面本身带有边栏、页脚啥的,这就是我说的可能需要 js 做一点手脚,把这些无关的干掉。这里面涉及到同源策略,但是我想反代应该可行。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2372 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:45 PVG 23:45 LAX 07:45 JFK 10:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86