前言:
由于业务需求,之前实现的单点登录。是我们自己开发的一个鉴权系统。实现过程从0-1都是我们自己去设计。(我们就叫外部模式吧)
现在有个需求就是我们的系统要集成已有第三方的单点登录。既集团4a集成。
现在的需求是这样的,能够最小化配置,能够兼容外部模式,也能够兼容4a模式,然后通过一个配置。打包,可以将这两种都区分开来,并且都可以正常运行。如果是部署自研鉴权系统方案的时候,则关于集成第三方相关的代码不打包进来。反之部署集成第三方代码也是同样的道理。
实现思路
通过node.js在编译的时候进对入口文件进行文件的替换。(这个入口文件就是单点登录逻辑。是一个js文件),得益于vue3中的compostion-api方式。所以可以将一些逻辑封装成compostion-api方式
所以我们在env-config.js中配置好登录模式以及跳转地址等。我们来看看有些什么内容
替换登录入口逻辑如下:
在打包前调用utils.toggleLoginMode()方法即可。
ps:当然还有一些其他的代码我这里就不全部贴出来了。因为还有一些兼容性处理代码。到这里其实已经差不多了。不一定适合所有人。只是刚好有这个需求所以搞了这么个处理方案。