Spaces:
Sleeping
Sleeping
File size: 897 Bytes
fe9acc7 ddd2690 fe9acc7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import { NextRequest, NextResponse } from "next/server";
/**
* Admin authentication middleware for API routes.
* Uses Bearer token (admin password) for simplicity.
*/
export function verifyAdmin(request: NextRequest): boolean {
const authHeader = request.headers.get("authorization");
if (!authHeader?.startsWith("Bearer ")) return false;
const token = authHeader.replace("Bearer ", "");
const adminPassword = process.env.ADMIN_PASSWORD || "ia-admin-2025";
return token === adminPassword;
}
/**
* Returns a 401 response if not admin, null if authorized.
* Usage: const denied = requireAdmin(request); if (denied) return denied;
*/
export function requireAdmin(request: NextRequest): NextResponse | null {
if (!verifyAdmin(request)) {
return NextResponse.json(
{ error: "Non autorisé — connexion admin requise" },
{ status: 401 }
);
}
return null;
}
|