20 lines
563 B
TypeScript
20 lines
563 B
TypeScript
import { NextRequest, NextResponse } from "next/server";
|
|
import jwt from "jsonwebtoken";
|
|
|
|
const SECRET_KEY = process.env.JWT_SECRET as string;
|
|
|
|
export function middleware(req: NextRequest) {
|
|
const token = req.cookies.get("token")?.value;
|
|
|
|
if (!token) return NextResponse.redirect(new URL("/login", req.url));
|
|
|
|
try {
|
|
jwt.verify(token, SECRET_KEY);
|
|
return NextResponse.next();
|
|
} catch (error) {
|
|
return NextResponse.redirect(new URL("/login", req.url));
|
|
}
|
|
}
|
|
|
|
export const config = { matcher: ["/dashboard", "/profile"] };
|