需求描述

使用其他框架做了一个系统A、此时需要将基于基础框架做的系统B链接到A系统中,从A系统可以直接
跳转到B系统中。

存在问题

将A系统的地址放入B系统中,通过B系统进行跳转时发现A系统跳转到了登录页面

问题原因

  • A系统的前端做了登录判断,未登录时前端自动跳转到登录页面
  • A系统的后端做了用户登录校验,未登录时返回 401 状态码,此时前端直接跳转到登录页面

解决办法

上诉中的需求是因为多个不同框架的系统进行融合,涉及到单点登录等问题,以下提供的解决方案
并非是安全,希望慎重!!!!

[!TIP|label: 后端配置文件修改]

  1. admin:
  2. token:
  3. ipValidate: true
  4. annoTokenList:
  5. - token: 12345
  6. userId: 1
  7. userName: admin

参数解释

参数名 说明
token 自己定义一个token,用于标识登录的用户
userId 登录的用户的ID,和数据库中的sys_user表中的user_id 保持一致
userName 登录的用户名称,和数据库中的sys_user表中的username 保持一致

[!TIP|label: 前端UI修改]
修改 src/router/index.js 文件,具体内容如下

  1. router.beforeEach((to, from, next) => {
  2. Vue.cookie.set('token','12345')
  3. ...
  4. }

找到如上代码所在的位置,在该方法的第一行写上 Vue.cookie.set(‘token’,’12345’)
其中 12345 就是配置文件中配置的token

[!TIP|label: 地址跳转]
将A系统中想访问的地址配置到B系统的菜单中,这样打开就可以是免登陆,且又是指定用户了

B系统根据不同角色查看到的A系统菜单不同

一般角色不是很多的,可以在A系统后端设置多个免登陆token,分别对应不用角色的,同时A系统的UI需要部署多套
这样A系统的UI就有了多个菜单地址,每个菜单地址可对应不用角色了(PS: 后期这个在优化下,不用部署多台UI也行)