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 @@
@@ -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 @@
+
+
+
+
Login
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+