generated from nhcarrigan/template
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.
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
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" });
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user