Files
lingji-work-fe/src/router/guard/userLoginInfo.ts

31 lines
683 B
TypeScript
Raw Normal View History

2025-06-16 14:42:26 +08:00
/*
2025-06-23 03:16:55 -04:00
* @Author: RenXiaoDong
* @Date: 2025-06-22 22:59:16
2025-06-16 14:42:26 +08:00
*/
2025-06-23 03:16:55 -04:00
import type { Router } from 'vue-router';
import NProgress from 'nprogress';
import { goUserLogin } from '@/utils/user';
2025-06-16 14:42:26 +08:00
import { useUserStore } from '@/stores/modules/user';
export default function setupUserLoginInfoGuard(router: Router) {
router.beforeEach(async (to, from, next) => {
NProgress.start();
const userStore = useUserStore();
2025-06-23 03:16:55 -04:00
const requiresAuth = to?.meta?.requiresAuth || false;
2025-06-23 03:16:55 -04:00
const isLogin = !!userStore.isLogin;
if (requiresAuth && !isLogin) {
2025-06-23 03:16:55 -04:00
goUserLogin();
next();
return;
2025-06-16 14:42:26 +08:00
}
2025-06-23 03:16:55 -04:00
next();
2025-06-16 14:42:26 +08:00
});
2025-06-23 04:14:42 -04:00
router.afterEach((to) => {
NProgress.done();
});
2025-06-16 14:42:26 +08:00
}