Files
AnimeTV-Backend/src/middleware/global/appAccessToken.middleware.ts

19 lines
708 B
TypeScript

import Elysia from "elysia";
import { returnErrorResponse } from "../../helpers/callback/httpResponse";
export const appAccessTokenMiddleware = () =>
new Elysia().onRequest(({ request, set }) => {
if (process.env.APP_ENV !== "development") {
const headerToken = request.headers.get("authorization");
if (!headerToken) return returnErrorResponse(set, 401, "Unauthorized");
const storedToken = process.env.API_KEY;
const [scheme, token] = headerToken.split(" ");
if (scheme !== "Bearer" || !token)
return returnErrorResponse(set, 401, "Invalid auth format");
if (token !== storedToken)
return returnErrorResponse(set, 403, "Forbidden");
}
});