四、若依获取动态路由

1、获取动态路由

image

2、全局路由守卫

2.1)用户在登录后,会发出3个请求,分别是login,getinfo,getRouters。分别代表了请求登录,获取用户角色和权限,获取动态路由。getinfo,getRouters是配置在路由守卫中的。
image
image

3、前端

3.1)在router在index.js文件中,默认已经读取了公共(静态)路由数据,系统确实的是动态路由数据,并且index.js文件中写死的动态路由数据也没有读取。
image

3.2)getRouters方法在permission.js文件中,与全局路由守卫的文件名相同但是不是同一个文件。会调用getRouters方法发起request请求。
image

image

3.3)在request.js文件中,配置了请求拦截,让一些请求携带token。
image

3.4)分析permission.js文件中的getRouters()方法,在请求完成后,首先会把router下index.js文件中写死的动态路由数据进行添加,然后加工从后台获取的动态路由数据然后返回。
image

3.5)在全局路由守卫,即permission.js文件中,对3.4步骤中返回的后端获取的动态路由数据进行操作,把数据添加到router中。
image

4、后端

4.1)后端对所有请求进行拦截,获取token,生成对象保存在spring secruity中。
image

4.2)在控制层,读取4.1步骤中存放在spring secruity的数据,然后调用menuService.selectMenuTreeByUserId从数据库获取动态路由。
image

4.3)调用mapper从数据库查询数据然后返回。
image

posted @ 2023-09-09 17:21  犹豫的象  阅读(1694)  评论(0编辑  收藏  举报