import { NextRequest, NextResponse } from "next/server"; import { jwtVerify } from "jose"; import { verifyJwt } from "@utils/verifyJwt"; export async function middleware(req: NextRequest) { const token = req.cookies.get("jwt")?.value; if (!token) return NextResponse.redirect(new URL("/", req.url)); const secret = process.env.JWT_SECRET_KEY; if (!secret) return NextResponse.json({ message: "Internal Server Error" }, { status: 500 }); try { const payload = await verifyJwt({ token, secret }); const response = NextResponse.next(); response.headers.set("user", JSON.stringify(payload)); return response; } catch (err) { return NextResponse.json({ error: "Invalid token" }, { status: 401 }); } } export const config = { matcher: ["/warehouse", "/profile", "/admin"], };