csa-dashboard-sementara/csa-dashboard/middleware.ts

24 lines
674 B
TypeScript

import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
const publicRoutes = ["/login", "/register"];
export function middleware(request: NextRequest) {
const token = request.cookies.get("token")?.value;
const { pathname } = request.nextUrl;
if (!token && !publicRoutes.includes(pathname)) {
return NextResponse.redirect(new URL("/login", request.url));
}
if (token && publicRoutes.includes(pathname)) {
return NextResponse.redirect(new URL("/", request.url));
}
return NextResponse.next();
}
export const config = {
matcher: ["/((?!api|_next/static|_next/image|favicon.ico).*)"],
};