需求描述
使用其他框架做了一个系统A、此时需要将基于基础框架做的系统B链接到A系统中,从A系统可以直接
跳转到B系统中。
存在问题
将A系统的地址放入B系统中,通过B系统进行跳转时发现A系统跳转到了登录页面
问题原因
- A系统的前端做了登录判断,未登录时前端自动跳转到登录页面
- A系统的后端做了用户登录校验,未登录时返回 401 状态码,此时前端直接跳转到登录页面
解决办法
上诉中的需求是因为多个不同框架的系统进行融合,涉及到单点登录等问题,以下提供的解决方案
并非是安全,希望慎重!!!!
[!TIP|label: 后端配置文件修改]
admin:
token:
ipValidate: true
annoTokenList:
- token: 12345
userId: 1
userName: admin
参数解释
参数名 | 说明 |
---|---|
token | 自己定义一个token,用于标识登录的用户 |
userId | 登录的用户的ID,和数据库中的sys_user表中的user_id 保持一致 |
userName | 登录的用户名称,和数据库中的sys_user表中的username 保持一致 |
[!TIP|label: 前端UI修改]
修改 src/router/index.js 文件,具体内容如下
router.beforeEach((to, from, next) => {
Vue.cookie.set('token','12345')
...
}
找到如上代码所在的位置,在该方法的第一行写上 Vue.cookie.set(‘token’,’12345’)
其中 12345 就是配置文件中配置的token
[!TIP|label: 地址跳转]
将A系统中想访问的地址配置到B系统的菜单中,这样打开就可以是免登陆,且又是指定用户了
B系统根据不同角色查看到的A系统菜单不同
一般角色不是很多的,可以在A系统后端设置多个免登陆token,分别对应不用角色的,同时A系统的UI需要部署多套
这样A系统的UI就有了多个菜单地址,每个菜单地址可对应不用角色了(PS: 后期这个在优化下,不用部署多台UI也行)