From 333d5ad9bceae7d7fbc9a28129423eecae3a9eaf Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Fri, 9 Jan 2026 08:50:26 +0100 Subject: [PATCH] Remove deprecated Passkey-related documentation and test files This commit deletes several files related to Passkey functionality, including CORS_TEST_ANLEITUNG.md, CROSS_DEVICE_DEBUG.md, CROSS_DEVICE_PROBLEM_ZUSAMMENFASSUNG.md, SMARTPHONE_TEST_ANLEITUNG.md, test-cors.html, test-smartphone.html, and Vue components for Passkey registration and recovery. These removals are part of a broader effort to streamline the codebase and focus on core authentication methods while Passkey support is under review. --- CORS_TEST_ANLEITUNG.md | 124 ----- CROSS_DEVICE_DEBUG.md | 152 ------ CROSS_DEVICE_PROBLEM_ZUSAMMENFASSUNG.md | 171 ------- SMARTPHONE_TEST_ANLEITUNG.md | 98 ---- pages/passkey-register-cross-device.vue | 142 ------ pages/passkey-wiederherstellen.vue | 191 -------- public/test-cors.html | 214 --------- public/test-smartphone.html | 438 ------------------ .../auth/passkeys/recovery/request.post.js | 4 +- server/middleware/log-requests.js | 5 +- test-cors.html | 214 --------- 11 files changed, 6 insertions(+), 1747 deletions(-) delete mode 100644 CORS_TEST_ANLEITUNG.md delete mode 100644 CROSS_DEVICE_DEBUG.md delete mode 100644 CROSS_DEVICE_PROBLEM_ZUSAMMENFASSUNG.md delete mode 100644 SMARTPHONE_TEST_ANLEITUNG.md delete mode 100644 pages/passkey-register-cross-device.vue delete mode 100644 pages/passkey-wiederherstellen.vue delete mode 100644 public/test-cors.html delete mode 100644 public/test-smartphone.html delete mode 100644 test-cors.html diff --git a/CORS_TEST_ANLEITUNG.md b/CORS_TEST_ANLEITUNG.md deleted file mode 100644 index f32bcb2..0000000 --- a/CORS_TEST_ANLEITUNG.md +++ /dev/null @@ -1,124 +0,0 @@ -# CORS-Test für Passkey Cross-Device Authentication - -## Test-Datei verwenden - -1. **Öffne die Test-Seite:** - ``` - https://harheimertc.tsschulz.de/test-cors.html - ``` - -2. **Führe die Tests aus:** - - Klicke auf "Test OPTIONS Request" - sollte Status 204 zurückgeben - - Klicke auf "Test POST Request" - sollte Status 200 zurückgeben - - Klicke auf "Test /api/auth/register-passkey-options" - sollte Options zurückgeben - -3. **Prüfe die Browser-Entwicklertools:** - - Öffne F12 → Network Tab - - Führe die Tests aus - - Klicke auf jeden Request und prüfe die **Response Headers**: - - `Access-Control-Allow-Origin` sollte `https://harheimertc.tsschulz.de` sein - - `Access-Control-Allow-Credentials` sollte `true` sein - - `Access-Control-Allow-Methods` sollte `GET, POST, OPTIONS` enthalten - -## Manueller Test mit curl - -### OPTIONS Preflight Test: -```bash -curl -X OPTIONS \ - -H "Origin: https://harheimertc.tsschulz.de" \ - -H "Access-Control-Request-Method: POST" \ - -H "Access-Control-Request-Headers: Content-Type" \ - -v \ - https://harheimertc.tsschulz.de/api/auth/register-passkey-options -``` - -**Erwartete Response:** -- Status: 204 No Content -- Header: `Access-Control-Allow-Origin: https://harheimertc.tsschulz.de` -- Header: `Access-Control-Allow-Credentials: true` - -### POST Request Test: -```bash -curl -X POST \ - -H "Origin: https://harheimertc.tsschulz.de" \ - -H "Content-Type: application/json" \ - -d '{"name":"Test","email":"test@example.com"}' \ - -v \ - https://harheimertc.tsschulz.de/api/auth/register-passkey-options -``` - -**Erwartete Response:** -- Status: 200 OK -- Header: `Access-Control-Allow-Origin: https://harheimertc.tsschulz.de` -- Body: JSON mit `success: true` und `options` Objekt - -## Browser Console Test - -Öffne die Browser-Konsole (F12) und führe aus: - -```javascript -// Test 1: OPTIONS Preflight -fetch('https://harheimertc.tsschulz.de/api/auth/register-passkey-options', { - method: 'OPTIONS', - headers: { - 'Origin': window.location.origin, - 'Access-Control-Request-Method': 'POST', - 'Access-Control-Request-Headers': 'Content-Type' - } -}).then(r => { - console.log('OPTIONS Status:', r.status); - console.log('CORS Headers:', { - origin: r.headers.get('Access-Control-Allow-Origin'), - credentials: r.headers.get('Access-Control-Allow-Credentials'), - methods: r.headers.get('Access-Control-Allow-Methods') - }); -}); - -// Test 2: POST Request -fetch('https://harheimertc.tsschulz.de/api/auth/register-passkey-options', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'Origin': window.location.origin - }, - body: JSON.stringify({ - name: 'Test User', - email: 'test@example.com' - }) -}).then(r => r.json()).then(data => { - console.log('POST Response:', data); - console.log('Has Options:', !!data.options); - console.log('Has Challenge:', !!data.options?.challenge); -}); -``` - -## Was zu prüfen ist: - -1. **OPTIONS Request:** - - Status sollte 204 sein (nicht 200 oder 404) - - CORS-Header müssen vorhanden sein - -2. **POST Request:** - - Status sollte 200 sein - - CORS-Header müssen vorhanden sein - - Response sollte `success: true` und `options` enthalten - -3. **Cross-Device Problem:** - - Wenn CORS korrekt ist, aber Cross-Device trotzdem nicht funktioniert: - - Prüfe, ob der QR-Code die richtige Origin enthält - - Prüfe, ob das Smartphone die gleiche Origin erreichen kann - - Prüfe die Browser-Logs auf dem Smartphone (falls möglich) - -## Häufige Probleme: - -1. **Apache überschreibt CORS-Header:** - - Lösung: In Apache-Config sicherstellen, dass CORS-Header nicht überschrieben werden - -2. **OPTIONS gibt 404 zurück:** - - Lösung: Endpoint muss OPTIONS-Requests explizit behandeln - -3. **CORS-Header fehlen:** - - Lösung: Server-Endpoint muss CORS-Header setzen - -4. **Origin-Mismatch:** - - Lösung: `WEBAUTHN_ORIGIN` muss exakt mit der Browser-Origin übereinstimmen diff --git a/CROSS_DEVICE_DEBUG.md b/CROSS_DEVICE_DEBUG.md deleted file mode 100644 index 1520a30..0000000 --- a/CROSS_DEVICE_DEBUG.md +++ /dev/null @@ -1,152 +0,0 @@ -# Cross-Device Passkey Debugging - -## Problem: Smartphone kann keine Verbindung aufbauen - -CORS funktioniert jetzt korrekt (OPTIONS gibt 204 zurück), aber das Smartphone kann immer noch keine Verbindung aufbauen. - -## Debugging-Schritte - -### 1. Prüfe Server-Logs - -Auf dem Server, während du versuchst, den QR-Code zu scannen: - -```bash -pm2 logs harheimertc --lines 100 | grep -i "register-passkey\|OPTIONS\|CORS\|origin" -``` - -**Was zu prüfen ist:** -- Kommt ein Request vom Smartphone an? (Sollte `[DEBUG] register-passkey request received` zeigen) -- Welche Origin hat der Request? (Sollte `https://harheimertc.tsschulz.de` sein) -- Welcher User-Agent? (Sollte das Smartphone-Browser sein) - -### 2. Prüfe Browser-Konsole (Desktop) - -Öffne F12 → Console auf dem Desktop-Browser und prüfe: -- Wird der QR-Code angezeigt? -- Gibt es Fehlermeldungen? -- Was steht in den Debug-Logs? - -### 3. Prüfe Smartphone-Browser - -**Wichtig:** Wenn du den QR-Code scannst, öffnet das Smartphone die Website. Prüfe dort: - -1. **Öffne die Website direkt auf dem Smartphone:** - ``` - https://harheimertc.tsschulz.de/registrieren - ``` - -2. **Prüfe, ob die Website lädt** (sollte funktionieren, da du sagst, du kannst die Website vom Smartphone aus erreichen) - -3. **Versuche, den QR-Code zu scannen** und prüfe: - - Öffnet sich die Website auf dem Smartphone? - - Gibt es Fehlermeldungen? - - Wird ein Request an den Server gesendet? - -### 4. Netzwerk-Test - -**Auf dem Smartphone:** -- Öffne die Website direkt: `https://harheimertc.tsschulz.de` -- Prüfe, ob sie lädt -- Prüfe, ob HTTPS korrekt funktioniert (keine Zertifikat-Fehler) - -**Mit curl (vom Server aus):** -```bash -# Simuliere einen Request vom Smartphone -curl -X POST \ - -H "Origin: https://harheimertc.tsschulz.de" \ - -H "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)" \ - -H "Content-Type: application/json" \ - -d '{"registrationId":"test","credential":{}}' \ - -v \ - https://harheimertc.tsschulz.de/api/auth/register-passkey -``` - -### 5. Häufige Probleme - -#### Problem 1: QR-Code wird nicht angezeigt -**Symptom:** Kein QR-Code erscheint im Browser -**Lösung:** -- Prüfe Browser-Konsole auf Fehler -- Prüfe, ob `startRegistration` aufgerufen wird -- Prüfe, ob die Options korrekt sind - -#### Problem 2: QR-Code wird gescannt, aber Website öffnet sich nicht -**Symptom:** QR-Code wird gescannt, aber nichts passiert -**Lösung:** -- Prüfe, ob der QR-Code die richtige URL enthält -- Prüfe, ob das Smartphone die Website erreichen kann -- Prüfe, ob es Firewall-Blockierungen gibt - -#### Problem 3: Website öffnet sich, aber Request kommt nicht an -**Symptom:** Website öffnet sich auf dem Smartphone, aber Server-Logs zeigen keinen Request -**Lösung:** -- Prüfe CORS-Header (sollte jetzt funktionieren) -- Prüfe, ob der Request wirklich gesendet wird (Browser-Entwicklertools auf dem Smartphone) -- Prüfe, ob Apache den Request weiterleitet - -#### Problem 4: Request kommt an, aber Fehler -**Symptom:** Request kommt im Server-Log an, aber es gibt einen Fehler -**Lösung:** -- Prüfe die Fehlermeldung im Server-Log -- Prüfe, ob die Challenge korrekt ist -- Prüfe, ob die Origin übereinstimmt - -### 6. Manueller Test - -**Test 1: Direkte Website-Zugriff vom Smartphone** -``` -https://harheimertc.tsschulz.de/registrieren -``` -Sollte funktionieren. - -**Test 2: API-Endpoint vom Smartphone** -Öffne auf dem Smartphone: -``` -https://harheimertc.tsschulz.de/api/auth/register-passkey-options -``` -Sollte einen JSON-Fehler zurückgeben (weil POST erwartet wird), aber kein 404. - -**Test 3: OPTIONS-Request vom Smartphone** -Mit einem Tool wie "HTTP Request" auf dem Smartphone: -``` -OPTIONS https://harheimertc.tsschulz.de/api/auth/register-passkey-options -Origin: https://harheimertc.tsschulz.de -``` -Sollte 204 mit CORS-Headern zurückgeben. - -### 7. Browser-spezifische Probleme - -**Chrome/Edge:** -- Sollte Cross-Device unterstützen -- QR-Code sollte automatisch erscheinen - -**Firefox:** -- Unterstützt Cross-Device möglicherweise nicht vollständig -- Prüfe Browser-Konsole auf Warnungen - -**Safari (iOS):** -- Unterstützt Cross-Device -- QR-Code sollte automatisch erscheinen - -### 8. Was die Logs zeigen sollten - -**Wenn alles funktioniert:** -1. Desktop-Browser: `[DEBUG] startRegistration called - QR-Code should appear now` -2. Smartphone scannt QR-Code -3. Smartphone sendet Request: `[DEBUG] register-passkey request received` mit Smartphone User-Agent -4. Server verifiziert: `[DEBUG] Verification successful` - -**Wenn es nicht funktioniert:** -- Kein Request vom Smartphone → Problem mit QR-Code oder Netzwerk -- Request kommt an, aber Fehler → Problem mit Challenge oder Origin -- Timeout → Problem mit Verbindung oder CORS - -### 9. Nächste Schritte - -1. **Prüfe Server-Logs** während des QR-Code-Scans -2. **Prüfe Browser-Konsole** auf dem Desktop -3. **Prüfe, ob der QR-Code angezeigt wird** -4. **Prüfe, ob das Smartphone die Website öffnet** -5. **Prüfe, ob ein Request ankommt** - -Bitte teile die Ergebnisse dieser Tests, dann können wir das Problem weiter eingrenzen. diff --git a/CROSS_DEVICE_PROBLEM_ZUSAMMENFASSUNG.md b/CROSS_DEVICE_PROBLEM_ZUSAMMENFASSUNG.md deleted file mode 100644 index b32f607..0000000 --- a/CROSS_DEVICE_PROBLEM_ZUSAMMENFASSUNG.md +++ /dev/null @@ -1,171 +0,0 @@ -# Cross-Device Passkey Problem - Zusammenfassung - -## Aktueller Status - -✅ **Was funktioniert:** -- CORS ist korrekt konfiguriert (OPTIONS gibt 204 zurück) -- POST-Requests funktionieren (Status 200) -- Options werden korrekt generiert -- QR-Code wird angezeigt (Desktop-Browser) -- QR-Code enthält FIDO-URI (Format: `FIDO:/...`) - -❌ **Was nicht funktioniert:** -- Verbindung vom Smartphone zum Server wird nicht hergestellt -- "Verbindung mit einem anderen Gerät wird hergestellt" bleibt hängen -- Keine Requests vom Smartphone im Server-Log -- Smartphone öffnet keine Website nach QR-Code-Scan - -## Wichtige Erkenntnis: Tunnel-Server - -**FIDO Cross-Device verwendet Tunnel-Server:** -- `cable.ua5v.com` (Google) -- `cable.auth.com` (Apple) - -**Wie funktioniert es:** -1. Desktop-Browser generiert QR-Code mit öffentlichem Schlüssel (FIDO-URI) -2. Smartphone scannt QR-Code -3. **Smartphone verbindet sich über Tunnel-Server mit Desktop-Browser** (nicht direkt mit dem Server!) -4. Desktop-Browser leitet Credential-Response an den Server weiter - -**Voraussetzungen:** -- ✅ Beide Geräte müssen **Internetverbindung** haben -- ✅ Tunnel-Server müssen erreichbar sein (Firewall/Netzwerk: cable.ua5v.com, cable.auth.com) -- ⚠️ Bluetooth kann für physische Nähe-Bestätigung verwendet werden (abhängig vom Browser/Gerät) -- ⚠️ Einige Browser/Implementierungen erfordern Bluetooth für Cross-Device - -## Mögliche Ursachen - -### 1. WebAuthn API auf dem Smartphone -**Problem:** Die WebAuthn-API auf dem Smartphone kann die Verbindung nicht herstellen. - -**Prüfung:** -- Öffne die Website direkt auf dem Smartphone: `https://harheimertc.tsschulz.de/registrieren` -- Versuche, einen Passkey zu registrieren (ohne QR-Code) -- Funktioniert das? - -### 2. QR-Code-Inhalt -**Problem:** Der QR-Code enthält möglicherweise nicht die richtige URL oder Challenge. - -**Prüfung:** -- Scanne den QR-Code mit einem QR-Code-Scanner -- Prüfe, welche URL/Informationen im QR-Code enthalten sind -- Sollte die Origin `https://harheimertc.tsschulz.de` enthalten - -### 3. Browser-Kompatibilität -**Problem:** Nicht alle Browser unterstützen Cross-Device Passkeys gleich gut. - -**Prüfung:** -- Welcher Browser wird auf dem Desktop verwendet? (Chrome, Firefox, Edge, Safari) -- Welcher Browser wird auf dem Smartphone verwendet? -- Chrome/Edge sollten am besten funktionieren - -### 4. Tunnel-Server / Netzwerk/Firewall -**Problem:** Das Smartphone kann die Tunnel-Server nicht erreichen oder Bluetooth ist nicht aktiviert. - -**Prüfung:** -- Ist Bluetooth auf beiden Geräten aktiviert? ⚠️ **WICHTIG für Cross-Device!** -- Können Tunnel-Server erreicht werden? (cable.ua5v.com, cable.auth.com) -- Sind die Geräte in physischer Nähe? (Bluetooth-Reichweite) -- Gibt es Firewall-Blockierungen für Tunnel-Server? -- Kann das Smartphone die Website direkt öffnen? ✅ (bereits bestätigt) - -### 5. Options-Struktur -**Problem:** Die Warnung "startRegistration() was not called correctly" deutet auf ein Problem mit der Options-Struktur hin. - -**Prüfung:** -- Prüfe Browser-Konsole (Desktop) auf die Debug-Logs -- Prüfe, ob die Options-Struktur korrekt ist -- Die Options sollten direkt von `@simplewebauthn/server` kommen (keine manuelle Serialisierung) - -## Debugging-Schritte - -### Schritt 1: Server-Logs prüfen -```bash -pm2 logs harheimertc --lines 200 | grep -i "register-passkey\|mobile\|smartphone\|user-agent" -``` - -**Was zu prüfen ist:** -- Kommt ein Request vom Smartphone an, wenn der QR-Code gescannt wird? -- Welcher User-Agent? (Sollte "Mobile", "iPhone", "Android" enthalten) -- Welche IP-Adresse? (Sollte die IP des Smartphones sein) - -### Schritt 2: Browser-Konsole prüfen (Desktop) -**Öffne F12 → Console und prüfe:** -- Gibt es die Warnung "startRegistration() was not called correctly"? -- Was zeigen die Debug-Logs `[DEBUG] Full options structure check`? -- Wird der QR-Code angezeigt? - -### Schritt 3: Smartphone direkt testen -**Öffne auf dem Smartphone:** -``` -https://harheimertc.tsschulz.de/registrieren -``` - -**Versuche:** -- Registrierung mit Passkey (ohne QR-Code) -- Funktioniert das? (Sollte einen lokalen Authenticator verwenden) - -### Schritt 4: QR-Code-Inhalt prüfen -**Scanne den QR-Code mit einem QR-Code-Scanner:** -- Welche URL/Informationen sind enthalten? -- Enthält er die richtige Origin? -- Enthält er die Challenge? - -## Bekannte Probleme - -### Problem 1: "startRegistration() was not called correctly" -**Ursache:** Die Options-Struktur ist nicht korrekt. - -**Lösung:** -- Options werden jetzt direkt von `@simplewebauthn/server` zurückgegeben (keine manuelle Serialisierung) -- Prüfe Browser-Konsole auf die Debug-Logs - -### Problem 2: Keine Requests vom Smartphone -**Ursache:** Cross-Device-Verbindung funktioniert nicht. - -**Mögliche Lösungen:** -1. Prüfe, ob beide Geräte im gleichen Netzwerk sind -2. Prüfe, ob der Browser Cross-Device unterstützt (Chrome/Edge am besten) -3. Prüfe, ob es Firewall-Blockierungen gibt -4. Versuche einen anderen Browser - -### Problem 3: Timeout -**Ursache:** Die Verbindung wird nicht innerhalb von 5 Minuten hergestellt. - -**Lösung:** -- Prüfe, ob Requests ankommen -- Prüfe, ob CORS korrekt ist (✅ bereits bestätigt) -- Prüfe, ob die Origin übereinstimmt - -## Nächste Schritte - -1. **Prüfe Server-Logs** während des QR-Code-Scans: - - Kommt ein Request an? - - Welcher User-Agent? - - Welche Fehlermeldungen? - -2. **Prüfe Browser-Konsole** (Desktop): - - Gibt es noch die Warnung? - - Was zeigen die Debug-Logs? - -3. **Teste direkt auf dem Smartphone:** - - Öffne die Registrierungsseite - - Versuche, einen Passkey zu registrieren (ohne QR-Code) - - Funktioniert das? - -4. **Teile die Ergebnisse:** - - Server-Logs - - Browser-Konsole (Desktop) - - Was passiert auf dem Smartphone? - -## Wichtige Erkenntnisse - -- ✅ CORS funktioniert (OPTIONS gibt 204 zurück) -- ✅ POST-Requests funktionieren (Status 200) -- ✅ Options werden korrekt generiert -- ✅ QR-Code wird angezeigt -- ✅ Website öffnet sich auf dem Smartphone -- ❌ Verbindung vom Smartphone zum Server wird nicht hergestellt -- ❌ Keine Requests vom Smartphone im Server-Log - -**Das Problem liegt wahrscheinlich in der Cross-Device-Verbindung selbst, nicht in CORS oder der Server-Konfiguration.** diff --git a/SMARTPHONE_TEST_ANLEITUNG.md b/SMARTPHONE_TEST_ANLEITUNG.md deleted file mode 100644 index 3efca4d..0000000 --- a/SMARTPHONE_TEST_ANLEITUNG.md +++ /dev/null @@ -1,98 +0,0 @@ -# Smartphone Passkey Test - Anleitung - -## Test-Seite öffnen - -**Auf dem Smartphone öffnen:** -``` -https://harheimertc.tsschulz.de/test-smartphone.html -``` - -## Was die Test-Seite zeigt - -### 1. Basis-Informationen -- Aktuelle URL und Origin -- Ob HTTPS/Secure Context aktiv ist -- Ob WebAuthn unterstützt wird -- Browser und Plattform-Info - -### 2. OPTIONS Preflight Test -- Testet, ob OPTIONS-Requests funktionieren -- Zeigt CORS-Header -- Sollte Status 204 zurückgeben - -### 3. Registration Options Test -- Testet den `/api/auth/register-passkey-options` Endpoint -- Zeigt, ob Options korrekt zurückgegeben werden -- Zeigt CORS-Header - -### 4. WebAuthn API Test -- Testet die komplette WebAuthn-Registrierung -- Zeigt, ob `startRegistration` funktioniert -- Zeigt, ob ein QR-Code erscheint (für Cross-Device) - -### 5. Network Monitor -- Zeigt alle Requests, die gesendet werden -- Zeigt Status-Codes und URLs - -## Was zu prüfen ist - -### ✅ Erfolgreich, wenn: -- **Basis-Info:** "Is Secure Context: JA ✓" und "WebAuthn Support: JA ✓" -- **OPTIONS Test:** Status 204 und alle CORS-Header vorhanden -- **Registration Options:** Status 200, `success: true`, `hasChallenge: JA ✓` -- **WebAuthn Test:** Zeigt "SUCCESS ✓" oder QR-Code erscheint - -### ❌ Probleme, wenn: -- **OPTIONS Test:** Status 404 oder CORS-Header fehlen -- **Registration Options:** Status 500 oder `success: false` -- **WebAuthn Test:** Fehler wie "NotSupportedError" oder Timeout - -## Häufige Probleme - -### Problem 1: "WebAuthn Support: NEIN ✗" -**Ursache:** Browser unterstützt WebAuthn nicht oder nicht in Secure Context -**Lösung:** -- Stelle sicher, dass HTTPS verwendet wird -- Prüfe, ob der Browser WebAuthn unterstützt (Chrome, Safari, Edge sollten funktionieren) - -### Problem 2: OPTIONS gibt 404 -**Ursache:** Endpoint behandelt OPTIONS nicht korrekt -**Lösung:** Sollte jetzt behoben sein mit `.options.js` Dateien - -### Problem 3: CORS-Header fehlen -**Ursache:** Server setzt CORS-Header nicht -**Lösung:** Prüfe Server-Logs, ob CORS-Header gesetzt werden - -### Problem 4: WebAuthn Test schlägt fehl -**Ursache:** -- Kein lokaler Authenticator verfügbar -- Cross-Device-Verbindung funktioniert nicht -- QR-Code wird nicht angezeigt - -**Lösung:** -- Prüfe, ob ein QR-Code erscheint -- Prüfe, ob das Smartphone die Website erreichen kann -- Prüfe Server-Logs, ob Requests ankommen - -## Nächste Schritte - -1. **Öffne die Test-Seite auf dem Smartphone** -2. **Führe alle Tests aus** -3. **Screenshot oder kopiere die Ergebnisse** -4. **Prüfe Server-Logs während der Tests:** - ```bash - pm2 logs harheimertc --lines 50 - ``` -5. **Teile die Ergebnisse**, dann können wir das Problem weiter eingrenzen - -## Zusätzliche Debug-Info - -**Auf dem Smartphone:** -- Öffne die Browser-Entwicklertools (falls verfügbar) -- Prüfe den Network-Tab -- Prüfe die Console auf Fehler - -**Auf dem Server:** -- Prüfe PM2-Logs während der Tests -- Prüfe Apache-Logs für Requests -- Prüfe, ob Requests ankommen diff --git a/pages/passkey-register-cross-device.vue b/pages/passkey-register-cross-device.vue deleted file mode 100644 index c4b4b36..0000000 --- a/pages/passkey-register-cross-device.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - diff --git a/pages/passkey-wiederherstellen.vue b/pages/passkey-wiederherstellen.vue deleted file mode 100644 index e1472ab..0000000 --- a/pages/passkey-wiederherstellen.vue +++ /dev/null @@ -1,191 +0,0 @@ - - - - diff --git a/public/test-cors.html b/public/test-cors.html deleted file mode 100644 index 089188e..0000000 --- a/public/test-cors.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - CORS Test für Passkey Cross-Device - - - -

CORS Test für Passkey Cross-Device Authentication

- -
-

1. Origin-Info

-

Current Origin:

-

Is Secure Context:

-
- -
-

2. OPTIONS Preflight Test

- -

-  
- -
-

3. POST Request Test (mit Origin-Header)

- -

-  
- -
-

4. Registration Options Test

- -

-  
- -
-

5. CORS Headers Check (Network Tab)

-

Öffne die Browser-Entwicklertools (F12) → Network Tab

-

Führe die Tests oben aus und prüfe:

- -
- - - - diff --git a/public/test-smartphone.html b/public/test-smartphone.html deleted file mode 100644 index 7e50b16..0000000 --- a/public/test-smartphone.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - Smartphone Passkey Test - - - -
-

🔍 Smartphone Passkey Test

- -
-

1. Basis-Informationen

-
-
- -
-

2. OPTIONS Preflight Test

- -
-
- -
-

3. Registration Options Test

- -
-
- -
-

4. WebAuthn API Test

- -
-
- -
-

5. Network Monitor

-

- Öffne die Browser-Entwicklertools (falls verfügbar) oder prüfe die Netzwerk-Requests unten. -

-
-
-
- - - - diff --git a/server/api/auth/passkeys/recovery/request.post.js b/server/api/auth/passkeys/recovery/request.post.js index da6540a..0b7e19e 100644 --- a/server/api/auth/passkeys/recovery/request.post.js +++ b/server/api/auth/passkeys/recovery/request.post.js @@ -78,7 +78,9 @@ export default defineEventHandler(async (event) => { }) const baseUrl = process.env.NUXT_PUBLIC_BASE_URL || 'http://localhost:3100' - const link = `${baseUrl}/passkey-wiederherstellen?token=${token}` + // Passkey-Wiederherstellungsseite vorläufig deaktiviert + // const link = `${baseUrl}/passkey-wiederherstellen?token=${token}` + const link = `${baseUrl}/login` // Fallback auf Login-Seite await transporter.sendMail({ from: process.env.SMTP_FROM || 'noreply@harheimertc.de', diff --git a/server/middleware/log-requests.js b/server/middleware/log-requests.js index 3e54722..73b1861 100644 --- a/server/middleware/log-requests.js +++ b/server/middleware/log-requests.js @@ -12,6 +12,7 @@ export default defineEventHandler((event) => { const ip = getHeader(event, 'x-forwarded-for') || getHeader(event, 'x-real-ip') || 'unknown' // Logge nur Passkey-relevante Endpoints (um Logs nicht zu überfluten) + // Passkey-Endpoints vorläufig deaktiviert const passkeyEndpoints = [ '/api/auth/register-passkey', '/api/auth/register-passkey-options', @@ -19,8 +20,8 @@ export default defineEventHandler((event) => { '/api/auth/passkeys/register', '/api/auth/passkeys/authentication-options', '/api/auth/passkeys/login', - '/api/auth/passkeys/recovery', - '/passkey-register-cross-device' + '/api/auth/passkeys/recovery' + // '/passkey-register-cross-device' - Seite gelöscht ] // Logge auch alle Requests vom Smartphone (Mobile User-Agent) diff --git a/test-cors.html b/test-cors.html deleted file mode 100644 index 089188e..0000000 --- a/test-cors.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - CORS Test für Passkey Cross-Device - - - -

CORS Test für Passkey Cross-Device Authentication

- -
-

1. Origin-Info

-

Current Origin:

-

Is Secure Context:

-
- -
-

2. OPTIONS Preflight Test

- -

-  
- -
-

3. POST Request Test (mit Origin-Header)

- -

-  
- -
-

4. Registration Options Test

- -

-  
- -
-

5. CORS Headers Check (Network Tab)

-

Öffne die Browser-Entwicklertools (F12) → Network Tab

-

Führe die Tests oben aus und prüfe:

- -
- - - -