Das ist das Token, das bei jeder Anfrage in deiner App mitgeschickt wird. Wer, glaubst du, kann lesen, was darin steht? Die Antwort ist einfach: jeder.
Drei Teile
Jedes JWT besteht aus drei Teilen, die durch Punkte getrennt sind: header.payload.signature. Die ersten beiden sind nicht verschlüsselt, sondern nur Base64-kodiert. Base64 ist keine Verschlüsselung, sondern nur ein Kodierungsformat – man kann es jederzeit dekodieren.
const [header, payload] = token.split(".");
console.log(JSON.parse(atob(payload)));
// { sub: "user_123", email: "...", role: "admin", exp: 1735689600 }Wenn du das in deine Browser-Konsole einfügst, erscheinen direkt vor dir deine E-Mail-Adresse, deine User-ID, deine Rolle und das Ablaufdatum. Deshalb solltest du niemals Passwörter, Ausweisnummern oder Kartendaten in den Payload eines JWT packen.
Kann ich es einfach ändern und Admin werden?
Du könntest den Payload bearbeiten und role: "admin" hineinschreiben – Base64 lässt sich schließlich in beide Richtungen umwandeln. Aber der Server berechnet die Signatur mit einem geheimen Schlüssel neu, den nur er kennt. Die Signatur passt nicht zu deinem gefälschten Payload, und der Server lehnt das Token ab: 401. Du kannst den Payload lesen, aber nicht unbemerkt manipulieren.
Vier Regeln
Wichtig: Der Umgang mit JWTs
- Packe keine sensiblen Daten in den Payload – behandle ihn wie öffentliche Daten.
- Prüfe Berechtigungen (
role,permissions) immer auf dem Server erneut; vertraue dem Token nicht blind. - Halte die Gültigkeitsdauer kurz und nutze Refresh Tokens für lange Sessions.
- Lies das Signatur-Secret (
secret) aus der.envund schreibe es nicht fest in den Code. Logge es außerdem nirgendwo.
Fazit
Die Aufgabe von JWT ist nicht Vertraulichkeit, sondern Integrität: Es garantiert, dass der Inhalt nicht manipuliert wurde, nicht dass er verborgen bleibt. Wenn du Daten hast, die wirklich geheim bleiben müssen, nutze JWE (verschlüsseltes JWT) oder klassische serverseitige Sessions.
Interaktive Roadmap & Tool
Junior Backend Developer 2026
Was du wirklich wissen musst, um 2026 eine Junior-Backend-Stelle zu bekommen, und was warten kann – ohne die Buzzword-Fallen aus echten Stellenanzeigen.
SQL oder NoSQL?
Beantworte sechs Fragen, und ich sage dir, welche Art von Datenbank zu deinem Projekt passt und warum.
Als Nächstes lesen
- CZDEDurch den Dschungel: Welche Backend-Sprache und welches Framework solltest du 2026 wählen?
Durch den Dschungel: Welche Backend-Sprache und welches Framework solltest du 2026 wählen?
25. Oktober 2026 · 3 Min. Lesezeit - CZDEPHP CVE-2026-115560 im Detail: Session Upload Progress und Serialize-Handler-Mismatch erklärt
PHP CVE-2026-115560 im Detail: Session Upload Progress und Serialize-Handler-Mismatch erklärt
24. Oktober 2026 · 3 Min. Lesezeit