From 64196eeab265e918a26443e29092ebb3cabf4878 Mon Sep 17 00:00:00 2001 From: minie4 Date: Thu, 5 May 2022 14:39:41 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Use=20Vue-based=20login=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- login.html | 68 ----------------------------- server/api/auth.js | 8 ++-- server/index.js | 7 ++- src/App.vue | 4 +- src/components/titlebar-element.vue | 2 +- src/router/index.js | 6 +++ src/store.js | 5 +++ src/views/LoginView.vue | 57 ++++++++++++++++++++++++ 8 files changed, 80 insertions(+), 77 deletions(-) delete mode 100644 login.html create mode 100644 src/views/LoginView.vue diff --git a/login.html b/login.html deleted file mode 100644 index b0d6d13..0000000 --- a/login.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - Login - Timetable V2 - - - -
-

Timetable V2

-
- - -
-
- - diff --git a/server/api/auth.js b/server/api/auth.js index 315c81b..71c0bd4 100644 --- a/server/api/auth.js +++ b/server/api/auth.js @@ -3,7 +3,7 @@ export class Auth { constructor() {} login = (req, res) => { if (!req.body.password) { - res.status(401).sendFile("login.html", { root: "../" }); + res.redirect("/login"); return; } else { if (req.body.password == process.env.AUTH_PASSWORD) { @@ -15,18 +15,18 @@ export class Auth { }); res.redirect("/"); } else { - res.status(401).sendFile("login.html", { root: "../" }); + res.redirect("/login"); return; } } }; checkLogin = (req, res, next) => { if (!req.cookies.session) { - res.status(401).sendFile("login.html", { root: "../" }); + res.sendStatus(401); return; } else { if (!this.activeSessions.includes(req.cookies.session)) { - res.status(401).sendFile("login.html", { root: "../" }); + res.sendStatus(401); return; } } diff --git a/server/index.js b/server/index.js index ce65066..473c3a6 100644 --- a/server/index.js +++ b/server/index.js @@ -29,13 +29,16 @@ const parser = new Parser( ); app.post("/login", auth.login); -app.use(auth.checkLogin); +app.use("/api", auth.checkLogin); +app.get("/api/check", (_req, res) => { + res.sendStatus(200); +}); app.get("/api/timetable", getTimetable); app.get("/api/substitutions", getSubstitutions); app.get("/api/history", getHistory); app.get("/api/classes", getClasses); -app.get("/api/*", (req, res) => { +app.get("/api/*", (_req, res) => { res.sendStatus(400); }); diff --git a/src/App.vue b/src/App.vue index 5f4420e..d65cfe7 100644 --- a/src/App.vue +++ b/src/App.vue @@ -7,9 +7,9 @@ import DateSelector from "./components/date-selector.vue";