Files
2026-05-20 18:58:23 +00:00

32 lines
1.0 KiB
TypeScript

// /opt/erp-system/proxy.ts
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
import { getToken } from "next-auth/jwt";
export default async function proxy(req: NextRequest) {
// Holt das Token aus dem Request
const token = await getToken({ req, secret: process.env.NEXTAUTH_SECRET });
const isAuthPage = req.nextUrl.pathname.startsWith("/login");
// Wenn der Nutzer auf der Login-Seite ist, aber schon eingeloggt -> ab zum Dashboard
if (isAuthPage) {
if (token) {
return NextResponse.redirect(new URL("/", req.url));
}
return NextResponse.next();
}
// Wenn der Nutzer nicht eingeloggt ist und versucht auf interne Seiten zuzugreifen -> zum Login
if (!token) {
return NextResponse.redirect(new URL("/login", req.url));
}
// Alles in Ordnung, Anfrage durchlassen
return NextResponse.next();
}
// Hier definieren wir, auf welchen Routen die Proxy/Middleware überhaupt laufen soll
export const config = {
matcher: ["/((?!api/auth|_next/static|_next/image|favicon.ico).*)"],
};