// Konfiguriert die Passkey-Domain (WebAuthn Relying Party) des // Supabase-Projekts auf die öffentliche App-URL. Passkeys sind an die // Domain gebunden – nach einem Domain-Wechsel einmal ausführen. // // Aufruf: // SUPABASE_ACCESS_TOKEN=... APP_URL=https://menu.example.de node scripts/configure-passkeys.mjs // oder mit der URL als Argument: // SUPABASE_ACCESS_TOKEN=... node scripts/configure-passkeys.mjs https://menu.example.de const PROJECT_REF = "hvzikwjoyhoakedlywhj"; const token = process.env.SUPABASE_ACCESS_TOKEN; const rawUrl = process.argv[2] ?? process.env.APP_URL; if (!token || !rawUrl) { console.error( "Nutzung: SUPABASE_ACCESS_TOKEN=... [APP_URL=https://…] node scripts/configure-passkeys.mjs [url]" ); process.exit(1); } const url = new URL(rawUrl); const res = await fetch( `https://api.supabase.com/v1/projects/${PROJECT_REF}/config/auth`, { method: "PATCH", headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json", }, body: JSON.stringify({ passkey_enabled: true, webauthn_rp_id: url.hostname, webauthn_rp_display_name: "Canteen Menu", webauthn_rp_origins: url.origin, }), } ); if (!res.ok) { console.error(`Fehler ${res.status}: ${await res.text()}`); process.exit(1); } console.log(`Passkey-Domain gesetzt: rp_id=${url.hostname}, origin=${url.origin}`); console.log( "Hinweis: Bereits auf einer anderen Domain registrierte Passkeys verlieren ihre Gültigkeit." );