test: 1
This commit is contained in:
63
src/permission.js
Normal file
63
src/permission.js
Normal file
@ -0,0 +1,63 @@
|
||||
import router from "./router";
|
||||
import store from "./store";
|
||||
import { setItem, getItem, removeAllItem } from "@/utils/storage";
|
||||
// 白名单
|
||||
const whiteList = [
|
||||
"/login",
|
||||
"/oatuh_login",
|
||||
"/profile",
|
||||
"/",
|
||||
"/editPassword",
|
||||
"/404",
|
||||
"/401"
|
||||
];
|
||||
/**
|
||||
* 路由前置守卫
|
||||
* to 去哪里
|
||||
* from 来自哪
|
||||
* next 往下走
|
||||
*/
|
||||
router.beforeEach(async (to, from, next) => {
|
||||
// 存在 token ,进入主页
|
||||
// if (store.state.user.token) {
|
||||
// 快捷访问
|
||||
if (store.getters.token) {
|
||||
// 判断用户资料是否获取
|
||||
// 若不存在用户信息,则需要获取用户信息
|
||||
// 触发获取用户信息的 action,并获取用户当前权限
|
||||
await store.commit("permission/setRouteReady", 1);
|
||||
// 添加完动态路由之后,需要在进行一次主动跳转
|
||||
const afterMenuList = await getItem("menusPermission");
|
||||
|
||||
// afterMenuList.push('allocationUser');
|
||||
// 处理用户权限,筛选出需要添加的权限
|
||||
if (store.state.permission.routes == 0) {
|
||||
const filterRoutes = await store.dispatch(
|
||||
"permission/filterRoutes",
|
||||
afterMenuList
|
||||
);
|
||||
filterRoutes.forEach((item) => {
|
||||
router.addRoute(item);
|
||||
});
|
||||
next({
|
||||
...to,
|
||||
replace: true
|
||||
});
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
// 利用 addRoute 循环添加
|
||||
} else {
|
||||
const isOatuh = getItem("isOatuh");
|
||||
// 没有token的情况下,可以进入白名单
|
||||
if (whiteList.indexOf(to.path) > -1) {
|
||||
next();
|
||||
} else {
|
||||
if (isOatuh) {
|
||||
next("/oatuh_login");
|
||||
} else {
|
||||
next("/login");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
Reference in New Issue
Block a user