import { NextRequest, NextResponse } from "next/server"; import { verifyToken, COOKIE_NAME } from "@/lib/auth-edge"; export async function middleware(request: NextRequest) { const { pathname } = request.nextUrl; // Allow login page and login API if (pathname === "/admin/login" || pathname === "/api/auth/login") { return NextResponse.next(); } // Protect /admin/* and /api/admin/* const token = request.cookies.get(COOKIE_NAME)?.value; const valid = token ? await verifyToken(token) : false; if (!valid) { if (pathname.startsWith("/api/")) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } return NextResponse.redirect(new URL("/admin/login", request.url)); } return NextResponse.next(); } export const config = { matcher: ["/admin/:path*", "/api/admin/:path*"], };