Initial commit - ERP System
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
// /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).*)"],
|
||||
};
|
||||
Reference in New Issue
Block a user