tremor-tracker/src/middleware.ts
2025-05-09 10:30:12 +01:00

26 lines
793 B
TypeScript

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"],
};