{"id":10340,"date":"2026-09-03T12:45:00","date_gmt":"2026-09-03T10:45:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=10340"},"modified":"2026-10-09T23:14:41","modified_gmt":"2026-10-09T21:14:41","slug":"json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/","title":{"rendered":"JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen"},"content":{"rendered":"<p>Du m\u00f6chtest wissen, was in einem Token steht? Bei einem signierten JWT l\u00e4sst sich der Inhalt oft schnell ansehen. Die wichtigere Frage kommt danach: Welche dieser Angaben darf eine Anwendung tats\u00e4chlich verwenden?<\/p>\n<p>Dieser Artikel behandelt die verbreitete signierte JWS-Form mit drei Teilen. Header und Nutzlast sind dabei Base64url-kodiert, nicht verschl\u00fcsselt. Verschl\u00fcsselte JWTs (JWE) sind eine andere Form. Wir trennen hier deshalb das Lesen eines Tokens von seiner Pr\u00fcfung.<\/p>\n<aside class=\"lw-article-context\" data-lw-editorial=\"20261009\">\n<p><strong>Warum dieses Thema hier ist<\/strong> Eigene Webanwendungen und Schnittstellen geh\u00f6ren zu meinen Projekten. Dieser Einstieg erkl\u00e4rt eine Unterscheidung, die beim Arbeiten mit Tokens leicht untergeht.<\/p>\n<p><strong>Zum Ausprobieren und Einordnen<\/strong> Nimm zum Ausprobieren ein Demo-Token. Ein Decoder zeigt Felder an; damit sind weder Signatur noch Berechtigungen gepr\u00fcft. Echte Zugangstokens geh\u00f6ren nicht in \u00f6ffentliche Beispiele.<\/p>\n<\/aside>\n<figure class=\"lw-diagram\">\n<img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/jwt-lesen-de.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Ein Token in seine drei durch Punkte getrennten Teile zerlegt, Kopf und Rumpf als lesbares JSON entschl\u00fcsselt und als f\u00fcr jeden lesbar gekennzeichnet, die Signatur als einziger sch\u00fctzender Teil markiert\"><figcaption>Zwei der drei Teile liest jeder. Der dritte ist der einzige, der \u00fcberhaupt etwas sch\u00fctzt.<\/figcaption><\/figure>\n<h2>Die drei Teile und was jeder leistet<\/h2>\n<p>Ein Token besteht aus drei durch Punkte getrennten Abschnitten. Der erste nennt das Verfahren und oft den verwendeten Schl\u00fcssel. Der zweite enth\u00e4lt die Claims: Angaben dar\u00fcber, auf wen sich das Token bezieht, was es erlaubt und wie lange es gilt. Der dritte ist die Signatur \u00fcber die ersten beiden.<\/p>\n<p>Allein der dritte sch\u00fctzt etwas, und er sch\u00fctzt genau eine Eigenschaft: dass die ersten beiden seit dem Unterschreiben unver\u00e4ndert sind. Er verbirgt sie nicht, und es braucht ihn nicht zu verstehen, um sie zu lesen. Ein Token in einen beliebigen Decoder eingef\u00fcgt gibt seinen Inhalt sofort preis.<\/p>\n<h2>Was im Rumpf nichts zu suchen hat<\/h2>\n<p>Jedes Feld im Rumpf ist ein Feld, das dem Besitzer des Tokens ausgeh\u00e4ndigt wird. Eine E-Mail-Adresse, ein vollst\u00e4ndiger Name, ein Geburtsdatum &#8211; damit wird aus einem Ausweis eine Datenweitergabe, und sie landet an Orten, die Ausweise erreichen und personenbezogene Daten nicht sollten: Proxy-Protokolle, Browserspeicher, Fehlerberichte.<\/p>\n<p>Die zweite Sorte ist innere Struktur. Eine Rollenliste wie <code>billing_admin<\/code> oder eine Mandantennummer verr\u00e4t, was hinter der Schnittstelle existiert und wie es geordnet ist &#8211; genau das, was ein Angreifer zuerst aufz\u00e4hlt. Ein knapper Betreff und ein Bereich gen\u00fcgen meist; der Rest geh\u00f6rt in die Abfrage, die der Server ohnehin macht.<\/p>\n<p>Die dritte ist alles, was nur f\u00fcr den Aussteller gedacht war. Tokens werden in Tickets kopiert, und ein Rumpf mit einer internen Kundennummer wandert mit.<\/p>\n<h2 id=\"exp-ist-das-einzige-das-ein-token-beendet\">Ablaufzeit und serverseitige Regeln<\/h2>\n<p><code>exp<\/code> legt eine Ablaufzeit fest. Ohne dieses Feld ist ein Token nicht automatisch unbegrenzt g\u00fcltig: Die Anwendung kann es verlangen und weitere Regeln pr\u00fcfen.<\/p>\n<p>Nur das L\u00f6schen im Browser widerruft vorhandene Kopien nicht. Eine fr\u00fchere Sperre braucht eine serverseitige Strategie, etwa eine Sperrliste. Ma\u00dfgeblich ist die Pr\u00fcfung durch den empfangenden Dienst. <a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc7519.html#section-4.1.4\">RFC 7519: exp<\/a>.<\/p>\n<p>Kurzlebige Zugriffstokens und zentral widerrufbare Auffrischungstokens sind ein m\u00f6glicher Aufbau. Welche Laufzeiten passen, h\u00e4ngt von der Anwendung und ihrer Widerrufsstrategie ab.<\/p>\n<h2>Wo Lesen mit Pr\u00fcfen verwechselt wird<\/h2>\n<p>Ein Token zu lesen und ihm zu trauen sind verschiedene Vorg\u00e4nge, und der Unterschied ist ein Bibliotheksaufruf. Ein Decoder zeigt die Anspr\u00fcche jedes Tokens, auch eines, das vor drei Sekunden von Hand geschrieben wurde. Die Pr\u00fcfung rechnet die Signatur gegen einen Schl\u00fcssel nach, und erst sie beantwortet, ob die Anspr\u00fcche von jemandem stammen, der sie ausstellen durfte.<\/p>\n<p>Aus der Verwechslung folgen zwei Fehlerbilder. Das erste ist <code>alg: none<\/code> &#8211; ein Token, das erkl\u00e4rt, es habe keine Signatur. Ein Pr\u00fcfer, der das Verfahren aus dem Token liest und sich daran h\u00e4lt, nimmt alles an; das Verfahren muss die Anwendung festlegen und nicht das Token. Das zweite ist derselbe Fehler mit einem Schl\u00fcssel: ein Dienst, der RS256 erwartet und ein HS256-Token bekommt, l\u00e4sst sich dazu bringen, es mit dem \u00f6ffentlichen Schl\u00fcssel als gemeinsamem Geheimnis zu pr\u00fcfen &#8211; und der \u00f6ffentliche Schl\u00fcssel ist \u00f6ffentlich.<\/p>\n<h2>Was in jedes Token geh\u00f6rt<\/h2>\n<p>Auf drei Anspr\u00fcche lohnt es zu bestehen. <code>exp<\/code>, weil ohne ihn nichts endet. <code>iss<\/code>, damit ein Dienst erkennt, von welchem Aussteller ein Token kommt, statt alles anzunehmen, was sich pr\u00fcfen l\u00e4sst. Und <code>aud<\/code> &#8211; jener Anspruch, der verhindert, dass ein f\u00fcr die Berichtsschnittstelle ausgestelltes Token von der Abrechnungsschnittstelle angenommen wird; eine Pr\u00fcfung, die sich leicht auslassen und schwer vermissen l\u00e4sst.<\/p>\n<p>F\u00fcr nichts davon braucht es Werkzeug im gro\u00dfen Stil. Ein Token an seinen Punkten zu teilen und den mittleren Teil zu entschl\u00fcsseln dauert Sekunden und beantwortet die Fragen, die sonst durch Annahme beantwortet werden: wie lange das gilt, was es erlaubt und was es jedem verr\u00e4t, der es liest.<\/p>\n<div class=\"lw-faq\">\n<h2>Fragen und Antworten<\/h2>\n<h3>Was geschieht mit ausgestellten Tokens, wenn der Signaturschl\u00fcssel gewechselt wird?<\/h3>\n<p>Die bereits ausgestellten Tokens gelten so lange weiter, wie der Pr\u00fcfer den alten Schl\u00fcssel noch kennt. Die Signatur wird gegen einen Schl\u00fcssel aus seiner eigenen Liste nachgerechnet, meist gegen den, den der erste Teil des Tokens benennt. Verschwindet dieser Schl\u00fcssel aus der Liste, scheitert jedes damit unterschriebene Token auf einen Schlag, gleichg\u00fcltig, was in exp steht.<\/p>\n<p>F\u00fcr einen geplanten Wechsel ergibt sich daraus eine Reihenfolge. Zuerst lernen die Pr\u00fcfer den neuen Schl\u00fcssel kennen, dann unterschreibt der Aussteller mit ihm, und der alte bleibt hinterlegt, bis das letzte mit ihm ausgestellte Token abgelaufen ist. Bei Zugriffstokens mit Minuten Laufzeit ist das eine kurze \u00dcberlappung; werden auch die Auffrischungstokens als signierte Tokens ausgestellt, reicht sie so weit wie deren Laufzeit.<\/p>\n<p>Umgekehrt beendet das Entfernen eines Schl\u00fcssels alle mit ihm unterschriebenen Tokens vor ihrer Zeit, ganz ohne Sperrliste. Das ist der richtige Schritt, wenn der Signaturschl\u00fcssel in falsche H\u00e4nde geraten ist, trifft aber alle Clients zugleich. In jedem Fall darf die Schl\u00fcsselangabe im Token nur unter den Schl\u00fcsseln ausw\u00e4hlen, die der Pr\u00fcfer selbst hinterlegt hat, aus demselben Grund, aus dem das Verfahren nicht aus dem Token kommen darf.<\/p>\n<h3>L\u00e4sst sich die Nutzlast verschl\u00fcsseln, statt sie knapp zu halten?<\/h3>\n<p>Ja, mit JSON Web Encryption nach RFC 7516; dann liest den Inhalt nur, wer den Schl\u00fcssel hat. Ein Zugang bleibt das Token trotzdem: Eine Kopie im Ticket oder in einer Protokolldatei ist dann unlesbar, bis zum Ablauf von exp aber genauso verwendbar wie vorher. Ein Feld, das der Server ohnehin nachschlagen kann, braucht deshalb keine Verschl\u00fcsselung, sondern gar keinen Platz im Token.<\/p>\n<h3>Was bedeutet es f\u00fcr exp, wenn die Uhren der beteiligten Server voneinander abweichen?<\/h3>\n<p>exp ist ein Zeitpunkt, und verglichen wird er mit der Uhr des pr\u00fcfenden Dienstes, nicht mit der des Ausstellers. Geht diese Uhr nach, nimmt der Dienst ein Token noch an, das bereits abgelaufen ist. Geht sie vor, verk\u00fcrzt sich die Laufzeit um die Abweichung, und bei einem Zugriffstoken von wenigen Minuten ist schon eine Minute ein sp\u00fcrbarer Teil davon. Bei nbf, dem Zeitpunkt, ab dem ein Token gilt, wirkt die Abweichung in umgekehrter Richtung: Ein Dienst mit nachgehender Uhr lehnt ein eben ausgestelltes Token als noch nicht g\u00fcltig ab.<\/p>\n<p>RFC 7519 l\u00e4sst daf\u00fcr eine kleine Toleranz zu, \u00fcblicherweise nicht mehr als wenige Minuten, und die meisten Bibliotheken bieten eine Einstellung daf\u00fcr. Die Toleranz verl\u00e4ngert allerdings jedes Token um genau diesen Betrag, und zwei Minuten auf ein Zugriffstoken mit f\u00fcnf Minuten Laufzeit sind keine Nebensache. Verl\u00e4sslicher ist es, alle beteiligten Rechner per NTP zu stellen und die Toleranz bei wenigen Sekunden zu belassen.<\/p>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>Quellen<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc7519.html\" target=\"_blank\" rel=\"noopener noreferrer\">RFC 7519: JSON Web Token<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/verifying-googlebot\" target=\"_blank\" rel=\"noopener noreferrer\">Google Search Central: verifying crawlers<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Du m\u00f6chtest wissen, was in einem Token steht? Bei einem signierten JWT l\u00e4sst sich der Inhalt oft schnell ansehen. Die wichtigere Frage kommt danach: Welche dieser Angaben darf eine Anwendung tats\u00e4chlich verwenden?<\/p>\n","protected":false},"author":1,"featured_media":15144,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[150],"tags":[92048,92071],"class_list":["post-10340","post","type-post","status-publish","format-standard","hentry","category-web-entwicklung","tag-rest-api-de","tag-web-security-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Base64 ist kein Schutz: was in einen JWT-Rumpf geh\u00f6rt und was nicht, warum ein Token ohne exp nie abl\u00e4uft und wie alg none aus dem Pr\u00fcfen ein Lesen macht.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Base64 ist kein Schutz: was in einen JWT-Rumpf geh\u00f6rt und was nicht, warum ein Token ohne exp nie abl\u00e4uft und wie alg none aus dem Pr\u00fcfen ein Lesen macht.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-03T10:45:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-09T21:14:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-n.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen\",\"datePublished\":\"2026-09-03T10:45:00+00:00\",\"dateModified\":\"2026-10-09T21:14:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/\"},\"wordCount\":1251,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-n.png\",\"keywords\":[\"REST API\",\"Web Security\"],\"articleSection\":[\"Web Entwicklung\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/\",\"name\":\"JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-n.png\",\"datePublished\":\"2026-09-03T10:45:00+00:00\",\"dateModified\":\"2026-10-09T21:14:41+00:00\",\"description\":\"Base64 ist kein Schutz: was in einen JWT-Rumpf geh\u00f6rt und was nicht, warum ein Token ohne exp nie abl\u00e4uft und wie alg none aus dem Pr\u00fcfen ein Lesen macht.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-n.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-n.png\",\"width\":1200,\"height\":630,\"caption\":\"JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/web-entwicklung\\\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen | Lukas Wojcik","description":"Base64 ist kein Schutz: was in einen JWT-Rumpf geh\u00f6rt und was nicht, warum ein Token ohne exp nie abl\u00e4uft und wie alg none aus dem Pr\u00fcfen ein Lesen macht.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/","og_locale":"en_US","og_type":"article","og_title":"JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen | Lukas Wojcik","og_description":"Base64 ist kein Schutz: was in einen JWT-Rumpf geh\u00f6rt und was nicht, warum ein Token ohne exp nie abl\u00e4uft und wie alg none aus dem Pr\u00fcfen ein Lesen macht.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-03T10:45:00+00:00","article_modified_time":"2026-10-09T21:14:41+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-n.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen","datePublished":"2026-09-03T10:45:00+00:00","dateModified":"2026-10-09T21:14:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/"},"wordCount":1251,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-n.png","keywords":["REST API","Web Security"],"articleSection":["Web Entwicklung"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/","name":"JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-n.png","datePublished":"2026-09-03T10:45:00+00:00","dateModified":"2026-10-09T21:14:41+00:00","description":"Base64 ist kein Schutz: was in einen JWT-Rumpf geh\u00f6rt und was nicht, warum ein Token ohne exp nie abl\u00e4uft und wie alg none aus dem Pr\u00fcfen ein Lesen macht.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-n.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10340-ein-jwt-ist-unterschrieben-nicht-ver-n.png","width":1200,"height":630,"caption":"JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/web-entwicklung\/json-web-tokens-aufbau-was-in-die-nutzlast-gehort-und-der-unterschied\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JSON Web Tokens: Aufbau, was in die Nutzlast geh\u00f6rt und der Unterschied zwischen Dekodieren und Pr\u00fcfen"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=10340"}],"version-history":[{"count":5,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10340\/revisions"}],"predecessor-version":[{"id":22198,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10340\/revisions\/22198"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/15144"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=10340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=10340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=10340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}