🔨 修改路由配置.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import type { Router } from 'vue-router';
|
||||
import NProgress from 'nprogress';
|
||||
import { useMenuStore } from '@/store';
|
||||
import { NOT_FOUND_ROUTER_NAME, WHITE_ROUTER_LIST } from '../constants';
|
||||
import NProgress from 'nprogress';
|
||||
import usePermission from '@/hooks/permission';
|
||||
|
||||
export default function setupPermissionGuard(router: Router) {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import type { LocationQueryRaw, Router } from 'vue-router';
|
||||
import type { RouteLocationRaw, Router } from 'vue-router';
|
||||
import NProgress from 'nprogress';
|
||||
import { useUserStore } from '@/store';
|
||||
import { isLogin } from '@/utils/auth';
|
||||
import { LOGIN_ROUTE_NAME, UPDATE_PASSWORD_ROUTE_NAME } from '@/router/constants';
|
||||
|
||||
/**
|
||||
* 初始化用户登录路由守卫
|
||||
@@ -11,40 +12,49 @@ export default function setupUserLoginInfoGuard(router: Router) {
|
||||
NProgress.start();
|
||||
const userStore = useUserStore();
|
||||
if (isLogin()) {
|
||||
// 获取用户信息
|
||||
if (userStore.id) {
|
||||
// 跳转
|
||||
next();
|
||||
} else {
|
||||
try {
|
||||
// 获取用户信息
|
||||
await userStore.info();
|
||||
next();
|
||||
const info = await userStore.getUserInfo();
|
||||
if (info.user.passwordUpdateStatus === 1) {
|
||||
// 跳转到修改密码页面
|
||||
next({
|
||||
name: UPDATE_PASSWORD_ROUTE_NAME,
|
||||
query: { reason: info.user.passwordUpdateReason },
|
||||
} as RouteLocationRaw);
|
||||
} else {
|
||||
// 跳转
|
||||
next();
|
||||
}
|
||||
} catch (error) {
|
||||
// 获取失败退出登录
|
||||
await userStore.logout();
|
||||
next({
|
||||
name: 'login',
|
||||
name: LOGIN_ROUTE_NAME,
|
||||
query: {
|
||||
redirect: to.name,
|
||||
...to.query,
|
||||
} as LocationQueryRaw,
|
||||
});
|
||||
},
|
||||
} as RouteLocationRaw);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 未登录跳转到登录页
|
||||
if (to.name === 'login') {
|
||||
if (to.name === LOGIN_ROUTE_NAME) {
|
||||
// 未登录跳转到登录页
|
||||
next();
|
||||
return;
|
||||
} else {
|
||||
// 跳转到登录页
|
||||
next({
|
||||
name: LOGIN_ROUTE_NAME,
|
||||
query: {
|
||||
redirect: to.name,
|
||||
...to.query,
|
||||
},
|
||||
} as RouteLocationRaw);
|
||||
}
|
||||
// 跳转到登录页
|
||||
next({
|
||||
name: 'login',
|
||||
query: {
|
||||
redirect: to.name,
|
||||
...to.query,
|
||||
} as LocationQueryRaw,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user