diff --git a/src/components/VNav.vue b/src/components/VNav.vue index b5a123f..7480f25 100644 --- a/src/components/VNav.vue +++ b/src/components/VNav.vue @@ -87,10 +87,10 @@
- LogoutLogout
@@ -124,11 +124,12 @@ diff --git a/src/router/index.ts b/src/router/index.ts index 2c879fe..e15d33a 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,6 +1,8 @@ import { createWebHistory, createRouter } from "vue-router"; import Home from "../views/Home.vue"; -import About from "../views/Settings.vue"; +const Settings = () => import("../views/Settings.vue"); +const Login = () => import("../views/Login.vue"); +import { isLoggedIn } from "../api"; const routes = [ { @@ -11,7 +13,12 @@ const routes = [ { path: "/settings", name: "Settings", - component: About, + component: Settings, + }, + { + path: "/login", + name: "Login", + component: Login, }, ]; @@ -20,4 +27,12 @@ const router = createRouter({ routes, }); +router.beforeEach(async (to) => { + if (to.name !== "Login") { + const canAccess = await isLoggedIn(); + if (!canAccess) return "/login"; + } + return true; +}); + export default router; diff --git a/src/views/Login.vue b/src/views/Login.vue new file mode 100644 index 0000000..7ea86c5 --- /dev/null +++ b/src/views/Login.vue @@ -0,0 +1,76 @@ + + + + +