← Zurück zum Blog
jwtauthsecuritysessionsweb18. Juni 2026 · 4 Min. Lesezeit

Ein JWT ist ein Format, kein Login-System – Einfach erklärt

WHERE: LOOKUP · WHAT: VERIFY
Editorial-Diagramm in zwei Hälften: links unter 'WHERE' eine Garderobenmarke mit Nummer, ein Server-Ledger und ein 'lookup'-Pfeil; rechts unter 'WHAT' eine dreiteilige Karte HEADER / PAYLOAD / SIGNATURE mit Wachssiegel und ein 'verify'-Pfeil.Editorial-Diagramm in zwei Hälften: links unter 'WHERE' eine Garderobenmarke mit Nummer, ein Server-Ledger und ein 'lookup'-Pfeil; rechts unter 'WHAT' eine dreiteilige Karte HEADER / PAYLOAD / SIGNATURE mit Wachssiegel und ein 'verify'-Pfeil.

Neulich lief im Netz mal wieder der immergleiche Streit durch: Soll man JWTs benutzen oder nicht? Die einen schwören drauf, die anderen warnen davor. Beide Seiten reden mit Inbrunst, und am Ende geht jeder unverändert nach Hause.

Das war mein Anlass, mir das Ding mal in Ruhe anzuschauen und zu verstehen, was so ein JWT (ausgesprochen JSON Web Token) eigentlich ist.

Spoiler: Am Ende stritten alle über zwei verschiedene Dinge und nannten beide gleich.

Was so ein Ding überhaupt ist

Stell dir zwei Arten vor, wie eine Webseite dich wiedererkennt, nachdem du dich eingeloggt hast.

Die erste Art ist wie eine Garderobenmarke. Du bekommst eine zufällige Nummer in die Hand. Die Nummer allein bedeutet gar nichts. Wem sie gehört, weiß nur die Garderobe, also der Server. Du reichst die Marke ein, der Server schaut in seiner Liste nach und weiß: Ah, das bist du.

Die zweite Art ist ein JWT, und der funktioniert wie ein Ausweis, den du selbst bei dir trägst. Die Fakten stehen direkt drin: wer du bist, was du darfst. Und das Ganze ist versiegelt, sodass man nichts fälschen kann.

Jetzt kommt der entscheidende Punkt, den fast alle übersehen. Dieser Ausweis ist versiegelt, aber nicht geheim. Jeder, der ihn in die Hand bekommt, kann ihn lesen. Verändern kann ihn niemand, ohne dass das Siegel bricht, aber lesen kann ihn jeder.

Signiert, aber nicht geheim: Das ist der Trick und zugleich die Gefahr.

So ein JWT sieht übrigens aus wie ein langer Buchstabensalat mit zwei Punkten drin. Hübsch ist anders. Aber der Inhalt ist eben offen lesbar für jeden, der ihn hat.

Wo der selbst-getragene Ausweis genau richtig ist

Der Ausweis spielt seine Stärke genau dann aus, wenn der, der ihn ausstellt, ein anderer ist als der, der ihn prüft, und die beiden keine gemeinsame Liste haben.

Das klassische Beispiel: „Mit Google anmelden“. Google stellt dir den Ausweis aus. Eine völlig fremde Webseite prüft ihn. Diese Webseite kann das Siegel anschauen und sieht sofort: echt. Sie muss dafür Google nie anrufen.

Der versiegelte Ausweis spart hier allen einen Telefonanruf, und genau dafür wurde er gebaut.

Dasselbe gilt, wenn im Hintergrund viele kleine Programme miteinander reden und sich gegenseitig ausweisen müssen. Jeder kann das Siegel selbst prüfen, niemand muss eine zentrale Liste befragen. Bei riesigen Mengen an Anfragen ist das der Unterschied zwischen flüssig und verstopft.

Wo es gefährlich wird

Und jetzt die Stelle, um die sich der Streit eigentlich dreht. Manche benutzen diesen selbst-getragenen Ausweis als normalen Login für eine ganz normale Webseite, und bewahren ihn dort auf, wo jedes Skript auf der Seite drankommt.

Das bringt zwei sehr handfeste Probleme mit.

Erstens: Du kannst den Ausweis nicht zurückholen. Einmal ausgestellt, gilt er, bis er von selbst abläuft. Du loggst dich aus? Der Ausweis gilt weiter. Du änderst dein Passwort, weil jemand eingebrochen ist? Der geklaute Ausweis gilt trotzdem weiter.

Bei der Garderobenmarke streicht der Server einfach die Zeile in seiner Liste, und die Marke ist tot. Beim Ausweis geht das nicht.

Zweitens: Liegt der Ausweis offen herum, kann ein bösartiges Skript auf der Seite ihn klauen. Und mit dem geklauten Ausweis ist der Dieb dann eben du.

Die übliche Notlösung ist eine Sperrliste, die bei jedem Besuch geprüft wird. Klingt vernünftig. Aber damit fragst du wieder eine zentrale Liste, und wirfst genau den Vorteil weg, für den du den Ausweis überhaupt genommen hast.

Dann kannst du auch gleich bei der Garderobe bleiben.

Was man stattdessen nimmt

Für den ganz normalen Webseiten-Login ist die langweilige alte Garderobenmarke einfach besser. Der Server behält die Liste, der Browser hütet die Marke in einem geschützten Fach, und ausloggen heißt: eine Zeile streichen.

Das Beste daran: Jedes gängige Baukasten-System bringt das fertig mit. Man muss nichts Eigenes basteln, und gerade bei Sicherheit ist Selbstbasteln das Letzte, was man will.

Der selbst-getragene Ausweis bleibt das richtige Werkzeug für Programme, die miteinander reden. Für deinen Login im Browser ist er es nicht.

(Es gibt auch ein neueres Ausweis-Format namens PASETO, das einige der typischen Fallen von vornherein wegbaut. Schön gedacht, aber für die meisten reicht der bekannte Weg, sauber gemacht.)

Der eigentliche Denkfehler

Und hier löst sich der ganze Streit auf. Die Leute vergleichen „Garderobenmarke gegen Ausweis“, also Cookie gegen JWT. Aber das ist ein Vergleich von Äpfeln mit Birnen.

Das eine ist wo du etwas aufbewahrst. Das andere ist was du aufbewahrst. Du kannst den Ausweis sogar in die Garderoben-Tasche stecken, beides geht zusammen.

Die einzige Frage, die wirklich zählt, ist eine ganz andere: Liegt das Geheimnis beim Server, oder steckt es im Ausweis selbst?

Darüber lohnt sich das Reden. Über Marke gegen Ausweis nicht.