Files
elysium/apps/api/src/middleware/auth.ts
T
hikari a3daed1683 feat: initial elysium idle game prototype
Sets up the full monorepo with pnpm workspaces. Includes shared types
package, Hono API with Discord OAuth/JWT auth, Prisma v6 + MongoDB
Atlas, and React + Vite frontend with game loop, five tabs, and
Discord-linked save/load.
2026-03-06 11:26:19 -08:00

24 lines
661 B
TypeScript

import type { Context, Next } from "hono";
import { verifyToken } from "../services/jwt.js";
export const authMiddleware = async (context: Context, next: Next): Promise<void> => {
const authorization = context.req.header("Authorization");
if (!authorization?.startsWith("Bearer ")) {
context.status(401);
context.json({ error: "Missing or invalid Authorization header" });
return;
}
const token = authorization.slice(7);
try {
const payload = verifyToken(token);
context.set("discordId", payload.discordId);
await next();
} catch {
context.status(401);
context.json({ error: "Invalid or expired token" });
}
};