Files
cdTestPlant3/cdTMP/src/router/guard/userLoginInfo.js

40 lines
1.1 KiB
JavaScript
Raw Normal View History

2023-06-05 21:02:25 +08:00
import NProgress from "nprogress" // progress bar
import { useUserStore } from "@/store"
// userInfo守卫
export default function setupUserLoginInfoGuard(router) {
2024-04-26 19:06:14 +08:00
router.beforeEach(async (to, from) => {
2023-06-05 21:02:25 +08:00
NProgress.start()
const userStore = useUserStore()
if (userStore.isLogin()) {
if (userStore.role) {
2024-04-26 19:06:14 +08:00
return
2023-06-05 21:02:25 +08:00
} else {
try {
await userStore.info()
2024-04-26 19:06:14 +08:00
return
2023-06-05 21:02:25 +08:00
} catch (error) {
await userStore.logout()
2024-04-26 19:06:14 +08:00
return {
2023-06-05 21:02:25 +08:00
name: "login",
query: {
redirect: to.name,
...to.query
}
2024-04-26 19:06:14 +08:00
}
2023-06-05 21:02:25 +08:00
}
}
} else {
if (to.name === "login") {
return
}
2024-04-26 19:06:14 +08:00
return {
2023-06-05 21:02:25 +08:00
name: "login",
query: {
redirect: to.name,
...to.query
}
2024-04-26 19:06:14 +08:00
}
2023-06-05 21:02:25 +08:00
}
})
}