From 788b45a9a7fe28130b9ea2122dad1db237884247 Mon Sep 17 00:00:00 2001 From: garionion Date: Sat, 3 Apr 2021 17:41:47 +0200 Subject: [PATCH] add login Signed-off-by: garionion --- src/components/VNav.vue | 22 ++++++------ src/router/index.ts | 19 +++++++++-- src/views/Login.vue | 76 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+), 13 deletions(-) create mode 100644 src/views/Login.vue 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 @@ + + + + +