JWT-Widerruf
Wie man ein JWT vor seinem Ablauf „ausloggt". Ein hartes technisches Problem: JWTs sind by Design stateless — der Server kann ein Token nicht zurücknehmen, ohne Zustand einzuführen.
Praktische Ansätze: (1) kurze TTL für das Access-Token (5-15 Min.) + ein Refresh-Token, das serverseitig widerrufen werden kann, (2) eine JWT-Denylist in Redis, geprüft bei jeder Anfrage — bricht die Stateless-Idee, (3) Rotation des Signing-Keys, wodurch alle mit dem alten Schlüssel signierten Tokens widerrufen werden — geht auf Kosten der User Experience. Klassisches Gegenargument: „Warum JWT verwenden, wenn man für den Widerruf trotzdem einen DB-Lookup braucht? Dann gleich ein Session-Cookie nehmen." Moderne Best Practice: kurzlebiges JWT für die API + opakes Refresh-Token für die Session. OAuth 2.1 + PKCE folgt diesem Muster.