Callback-URL aus APP_URL ableiten
Auth.js baut die redirect_uri nicht aus dem Host-Header, sondern aus AUTH_URL. Ohne die Variable bleibt sie fest auf http://localhost:3000 — hinter dem Cloudflare Tunnel wäre die Anmeldung damit kaputt gewesen, und zwar mit einer Fehlermeldung von Discord, die nicht auf die Ursache zeigt. APP_URL ist ohnehin die kanonische öffentliche Adresse und wird jetzt durchgereicht. Nachweis mit dem gebauten Standalone-Server: mit gesetztem APP_URL kommt https://afis.example.de/api/auth/callback/discord heraus, ohne fällt sie auf localhost zurück. Ein E2E-Test hält Scope identify, state, PKCE mit S256 und den Pfad der Callback-URL fest. Nebenbefund, eigenständig behoben: loadEnvFromRepoRoot hat gesetzte Umgebungsvariablen mit den Werten der Entwicklungs-.env überschrieben. process.loadEnvFile tut das von sich aus. Eine .env ist ein Rückfall für die lokale Entwicklung, kein Vorrang vor dem, was der Aufrufer ausdrücklich mitgibt — sonst überschreibt sie etwa die APP_URL eines Testlaufs und die Fehlersuche führt weit weg von der Ursache. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
2e71dfee78
commit
579244ded1
@@ -27,6 +27,9 @@ export default defineConfig({
|
||||
url: `${baseURL}/api/health`,
|
||||
reuseExistingServer: !process.env.CI,
|
||||
timeout: 180_000,
|
||||
env: { PORT: String(PORT), HOSTNAME: '127.0.0.1' },
|
||||
// APP_URL muss der Testserver kennen: Auth.js baut daraus die
|
||||
// redirect_uri, und die wird geprüft. Ohne sie fiele sie auf den
|
||||
// Request-Origin zurück und die Zusicherung wäre wertlos.
|
||||
env: { PORT: String(PORT), HOSTNAME: '127.0.0.1', APP_URL: baseURL },
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user