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