From d276281ce97bed841d21b9d542c13d6549251190 Mon Sep 17 00:00:00 2001 From: Corban-Lee Date: Wed, 29 Jan 2025 18:20:28 +0000 Subject: [PATCH] logout and auth url --- src/app.ts | 2 +- src/client/views/login.ejs | 2 +- src/server/controllers/auth.ts | 9 ++++++++- src/server/middleware/authenticated.ts | 2 +- src/server/routes/auth.ts | 5 +++-- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/app.ts b/src/app.ts index 4db9117..25f3ea3 100644 --- a/src/app.ts +++ b/src/app.ts @@ -41,7 +41,7 @@ app.use(flash()); app.use(flashMiddleware); // register routers & middleware -app.use("/login", authRouter); +app.use("/auth", authRouter); app.use("/guild", ensureAuthenticated, attachUser, attachGuilds, guildRouter); app.use("/", ensureAuthenticated, attachUser, attachGuilds, homeRouter); diff --git a/src/client/views/login.ejs b/src/client/views/login.ejs index d744bc7..af4cdd8 100644 --- a/src/client/views/login.ejs +++ b/src/client/views/login.ejs @@ -17,7 +17,7 @@
- + diff --git a/src/server/controllers/auth.ts b/src/server/controllers/auth.ts index 5f29438..96d853d 100644 --- a/src/server/controllers/auth.ts +++ b/src/server/controllers/auth.ts @@ -11,11 +11,18 @@ export const get = async (_request: Request, response: Response) => { export const authenticate = async (request: Request, response: Response, next: NextFunction) => { passport.authenticate("discord", { successRedirect: "/", - failureRedirect: "/login", + failureRedirect: "/auth/login", failureFlash: true })(request, response, next); }; +export const logout = async (request: Request, response: Response, next: NextFunction) => { + request.logout(error => { + if (error) { return next(); } + response.redirect("/"); + }); +}; + export const setupPassport = (passport: PassportStatic) => { const scopes: Array = ["identify"]; const authorisedUserIds: Array = process.env.DISCORD_USER_IDS?.split("/") || []; diff --git a/src/server/middleware/authenticated.ts b/src/server/middleware/authenticated.ts index 9d9bc04..e9dc418 100644 --- a/src/server/middleware/authenticated.ts +++ b/src/server/middleware/authenticated.ts @@ -5,7 +5,7 @@ export const ensureAuthenticated = (request: Request, response: Response, next: return next(); } - response.redirect("/login"); + response.redirect("/auth/login"); }; export const forwardAuthenticated = (request: Request, response: Response, next: NextFunction) => { diff --git a/src/server/routes/auth.ts b/src/server/routes/auth.ts index 363d2f9..6830067 100644 --- a/src/server/routes/auth.ts +++ b/src/server/routes/auth.ts @@ -1,8 +1,9 @@ import { Router } from "express"; -import { forwardAuthenticated } from "@server/middleware/authenticated"; +import { ensureAuthenticated, forwardAuthenticated } from "@server/middleware/authenticated"; import * as controller from "@server/controllers/auth"; export const router = Router(); -router.get("/", forwardAuthenticated, controller.get); +router.get("/login", forwardAuthenticated, controller.get); +router.get("/logout", ensureAuthenticated, controller.logout); router.get("/api", forwardAuthenticated, controller.authenticate); \ No newline at end of file