sendou.ink/app/features/api-public/api-public-utils.server.ts
Kalle fd48bced91
Migrate Prettier/Eslint/Stylelint setup to Biome (#1772)
* Initial

* CSS lint

* Test CI

* Add 1v1, 2v2, and 3v3 Tags (#1771)

* Initial

* CSS lint

* Test CI

* Rename step

---------

Co-authored-by: xi <104683822+ximk@users.noreply.github.com>
2024-06-24 13:07:17 +03:00

23 lines
658 B
TypeScript

import { cors } from "remix-utils/cors";
const apiTokens = process.env.PUBLIC_API_TOKENS?.split(",") ?? [];
export function requireBearerAuth(req: Request) {
const authHeader = req.headers.get("Authorization");
if (!authHeader) {
throw new Response("Missing Authorization header", { status: 401 });
}
const token = authHeader.replace("Bearer ", "");
if (!apiTokens.includes(token)) {
throw new Response("Invalid token", { status: 401 });
}
}
export async function handleOptionsRequest(req: Request) {
if (req.method === "OPTIONS") {
throw await cors(req, new Response("OK", { status: 204 }), {
origin: "*",
credentials: true,
});
}
}