// /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).*)"], };