/** * Adressen der Anwendung nach aussen (#007). * * Massgeblich ist APP_URL, nicht die eingehende Anfrage. Hinter einem Reverse * Proxy traegt die Anfrage den internen Host und oft auch das falsche Schema – * eine daraus gebaute Umleitung schickt den Benutzer dann an eine Adresse, die * er gar nicht erreicht, und eine daraus gebaute OIDC-Rueckruf-Adresse passt * nicht zu der beim Anbieter hinterlegten. * * Die Herkunft der Anfrage dient nur als Notnagel, damit die Anwendung auch ohne * gesetzte APP_URL nicht stehen bleibt. */ export function oeffentlicheAdresse(pfad: string, ersatzHerkunft: string): URL { const basis = process.env["APP_URL"]?.trim(); if (basis) { try { return new URL(pfad, basis); } catch { // Eine unbrauchbare APP_URL soll die Anmeldung nicht blockieren. } } return new URL(pfad, ersatzHerkunft); }