Frontend/src/router/index.ts
2024-03-28 19:23:23 +08:00

73 lines
1.5 KiB
TypeScript

import { createRouter, createWebHistory } from "vue-router";
import {useUserStore} from "@/stores/user";
const routes = [
{
path: "/",
name: "home",
meta: {
auth: true,
},
// route level code-splitting
// this generates a separate chunk (Home-[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import("@/views/Home.vue"),
},
{
path: "/auth/login",
name: "login",
meta: {
auth: false,
},
// route level code-splitting
// this generates a separate chunk (Home-[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import("@/views/auth/Login.vue"),
},
{
path: "/spiders",
name: "spiders.index",
meta: {
auth: false,
},
// route level code-splitting
// this generates a separate chunk (Home-[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import("@/views/spiders/List.vue"),
},
];
const router = createRouter({
history: createWebHistory(process.env.BASE_URL),
routes,
});
router.beforeEach((to: any, from: any) => {
console.log(from.name, from.fullPath)
const userStore = useUserStore();
// if (to.matched.length === 0) {
// return router.push({ name: "errors.404" });
// }
if (to.meta.auth == true) {
// validate login state
if (userStore.access_token == null) {
router.push({name: "login"}).then(r => {
console.log(r)
});
}
}
return true;
});
export default router;