Fix: Weiterleitungen übernehmen nicht mehr die Server-Bindung 0.0.0.0

Nach dem Abmelden landete man auf 0.0.0.0:3000, weil die absolute
Redirect-URL aus request.url gebaut wurde und dort seit der Bindung an
0.0.0.0 die Server-Adresse statt des aufgerufenen Hosts steht.
Logout leitet jetzt relativ weiter; der Proxy baut die URL aus dem
Host-Header des Browsers (inkl. x-forwarded-proto hinter Proxies).
This commit is contained in:
2026-07-17 23:53:12 +02:00
parent 5c7112ecd2
commit 32594c2dd8
2 changed files with 15 additions and 5 deletions
+8 -4
View File
@@ -31,10 +31,14 @@ export async function proxy(request: NextRequest) {
} = await supabase.auth.getUser();
if (!user) {
const url = request.nextUrl.clone();
url.pathname = "/login";
url.search = "";
return NextResponse.redirect(url);
// Absolute URL aus dem Host-Header des Browsers bauen: request.nextUrl
// trägt bei "-H 0.0.0.0" die Server-Bindung statt des aufgerufenen
// Hosts, und relative Location-Header lehnt die Middleware ab.
const host = request.headers.get("host") ?? request.nextUrl.host;
const proto =
request.headers.get("x-forwarded-proto") ??
request.nextUrl.protocol.replace(":", "");
return NextResponse.redirect(`${proto}://${host}/login`, 303);
}
return response;