File size: 791 Bytes
dfa877e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import { NextResponse, type NextRequest } from "next/server";
import { SESSION_COOKIE } from "@/lib/auth/session";
const PROTECTED_PREFIXES = ["/practice", "/camera", "/profile", "/onboarding"];
export function proxy(req: NextRequest) {
const { pathname } = req.nextUrl;
if (!PROTECTED_PREFIXES.some((p) => pathname === p || pathname.startsWith(p + "/"))) {
return NextResponse.next();
}
const hasSession = Boolean(req.cookies.get(SESSION_COOKIE)?.value);
if (!hasSession) {
const url = req.nextUrl.clone();
url.pathname = "/";
url.searchParams.set("next", pathname);
return NextResponse.redirect(url);
}
return NextResponse.next();
}
export const config = {
matcher: ["/practice/:path*", "/camera/:path*", "/profile/:path*", "/onboarding/:path*"],
};
|