From be493b08ef3c5fe3ebc8ab45a906fda7a881daf6 Mon Sep 17 00:00:00 2001 From: rafiarrafif Date: Thu, 15 May 2025 17:19:35 +0700 Subject: [PATCH] create auth middleware --- src/middleware/auth/authenticated.middleware.ts | 16 ++++++++++++++++ .../auth/unauthenticated.middleware.ts | 15 +++++++++++++++ src/middleware/userRoles/onlyAdmin.middleware.ts | 0 src/modules/userRole/index.ts | 5 ++++- 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/middleware/auth/authenticated.middleware.ts create mode 100644 src/middleware/auth/unauthenticated.middleware.ts create mode 100644 src/middleware/userRoles/onlyAdmin.middleware.ts diff --git a/src/middleware/auth/authenticated.middleware.ts b/src/middleware/auth/authenticated.middleware.ts new file mode 100644 index 0000000..df5e5c1 --- /dev/null +++ b/src/middleware/auth/authenticated.middleware.ts @@ -0,0 +1,16 @@ +import { Context } from "elysia"; +import { getCookie } from "../../helpers/http/userHeader/cookies/getCookies"; +import { returnErrorResponse } from "../../helpers/callback/httpResponse"; +import { mainErrorHandler } from "../../helpers/error/handler"; + +export const authMiddleware = (ctx: Context) => { + try { + const cookie = getCookie(ctx); + if (!cookie.auth_token) + return returnErrorResponse(ctx.set, 401, "User Unauthorized"); + + // pass + } catch (error) { + return mainErrorHandler(ctx.set, error); + } +}; diff --git a/src/middleware/auth/unauthenticated.middleware.ts b/src/middleware/auth/unauthenticated.middleware.ts new file mode 100644 index 0000000..3a129c7 --- /dev/null +++ b/src/middleware/auth/unauthenticated.middleware.ts @@ -0,0 +1,15 @@ +import { Context } from "elysia"; +import { getCookie } from "../../helpers/http/userHeader/cookies/getCookies"; +import { returnErrorResponse } from "../../helpers/callback/httpResponse"; + +export const unautenticatedMiddleware = (ctx: Context) => { + try { + const cookies = getCookie(ctx); + if (cookies.auth_token) + return returnErrorResponse(ctx.set, 403, "User already aunthenticated"); + + // pass + } catch (error) { + // pass + } +}; diff --git a/src/middleware/userRoles/onlyAdmin.middleware.ts b/src/middleware/userRoles/onlyAdmin.middleware.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/modules/userRole/index.ts b/src/modules/userRole/index.ts index 1fb3c22..f81244f 100644 --- a/src/modules/userRole/index.ts +++ b/src/modules/userRole/index.ts @@ -1,6 +1,9 @@ import Elysia from "elysia"; import { createUserRole } from "./controller/createUserRole.controller"; +import { unautenticatedMiddleware } from "../../middleware/auth/unauthenticated.middleware"; export const userRoleModule = new Elysia({ prefix: "/roles" }) - .get("/", () => "Hello User Role Module") + .get("/", () => "Hello User Role Module", { + beforeHandle: unautenticatedMiddleware, + }) .post("/", createUserRole);