# Browser-Token-Authentifizierung (Ansatz B) Da der API-Login für Ihren Account-Typ blockiert ist, können Sie sich im Browser einloggen und die Session-Daten für den WebDAV-Wrapper verwenden. ## Ablauf 1. Auf https://drive.internxt.com einloggen 2. Token und Mnemonic aus dem Browser extrahieren 3. In `.env` eintragen 4. WebDAV-Server starten ## Token extrahieren ### Schritt 1: Alle gespeicherten Keys anzeigen Auf **https://drive.internxt.com** eingeloggt sein. DevTools (F12) → **Console**: ```javascript // Alle localStorage-Keys anzeigen Object.keys(localStorage).filter(k => k.includes('x') || k.includes('token') || k.includes('Token')).forEach(k => console.log(k)); ``` Damit sehen Sie, welche Keys es gibt (z.B. `xNewToken`, `xMnemonic`, `xUser`). ### Schritt 2: Token und Mnemonic auslesen ```javascript // Token und Mnemonic anzeigen console.log('Token:', localStorage.getItem('xNewToken') || localStorage.getItem('xToken') || '(nicht gefunden)'); console.log('Mnemonic:', localStorage.getItem('xMnemonic') || '(nicht gefunden)'); ``` ### Schritt 3: Falls nichts gefunden wird - **Application-Tab prüfen:** DevTools → **Application** (oder **Anwendung**) → links **Local Storage** → **https://drive.internxt.com** auswählen. Dort alle Einträge durchsehen. - **Richtige URL:** Sie müssen auf `https://drive.internxt.com` sein (nicht internxt.com) und **eingeloggt** sein – nach dem Login auf `/drive` oder `/app`. - **Session vs. Local:** Manche Werte liegen in `sessionStorage`. Testen mit: ```javascript console.log('sessionStorage:', Object.keys(sessionStorage)); ``` - **Alle Keys anzeigen:** Zum Debuggen alle Keys mit Werten: ```javascript for (let i = 0; i < localStorage.length; i++) { const k = localStorage.key(i); console.log(k + ':', localStorage.getItem(k)?.substring(0, 50) + '...'); } ``` ## .env eintragen ``` INXT_TOKEN=eyJhbGciOiJIUzI1NiIs... INXT_MNEMONIC=word1 word2 word3 ... # Namensentschlüsselung: CRYPTO_SECRET oder CRYPTO_SECRET2 (CLI-Default: 6KYQBP847D4ATSFA) # Falls Datei-/Ordnernamen verschlüsselt angezeigt werden: CRYPTO_SECRET2 aus drive.internxt.com extrahieren CRYPTO_SECRET=6KYQBP847D4ATSFA ``` ## WebDAV-Server starten ```bash npm start ``` Server läuft auf `http://127.0.0.1:3005`. Phase 1–4 aktiv: PROPFIND, MKCOL, DELETE, MOVE, GET, PUT. Für GET und PUT wird INXT_MNEMONIC benötigt. ### PowerShell Copy-Item: „Null character in path“ Windows/.NET fügt bei WebDAV-Pfaden manchmal Null-Bytes ein. **Workaround:** ```powershell # Variante 1: Direkt per HTTP (umgeht WebDAV-Bugs, UUID aus dir i: übernehmen) Invoke-WebRequest -Uri "http://127.0.0.1:3005/_.69942103-e16f-4714-89bb-9f9f7d3b1bd5" -OutFile test.md # Upload per PUT (PowerShell) Invoke-WebRequest -Uri "http://127.0.0.1:3005/meine-datei.txt" -Method PUT -Body "Inhalt" -ContentType "application/octet-stream" # Variante 2: Robocopy (kopiert alle Dateien aus Root) robocopy "i:\" "." /NFL /NDL # Variante 3: Explorer – Datei per Drag & Drop kopieren ``` Windows Explorer: Netzlaufwerk verbinden → `http://127.0.0.1:3005`. ## Hinweise - **Bridge-API**: Der Download nutzt die Internxt Bridge mit `x-api-version: 2` und den Headern `internxt-version`/`internxt-client`. Ohne diese liefert die Bridge 400. - **Token-Ablauf**: Tokens laufen nach einiger Zeit ab (typisch Stunden). Bei 401-Fehlern erneut einloggen und Token aktualisieren. - **Sicherheit**: Mnemonic und Token sind hochsensibel. Nicht in Git committen, `.env` in `.gitignore` belassen. - **Nur für Sie**: Die Tokens sind an Ihre Session gebunden. Für andere Nutzer funktioniert dieser Ansatz nicht.