Zum Inhalt springen
ecdsa.com
jsonwebtoken (Node.js)JWT-Bibliotheken

Fehlermeldung

jwt expired

Was der Fehler bedeutet

TokenExpiredError von jsonwebtoken: Der Claim exp des Tokens (ein Unix-Zeitstempel in Sekunden) liegt vor der aktuellen Uhrzeit des Prüfers. Die Signatur selbst kann völlig gültig sein – das Token hat einfach die Laufzeit überschritten, die ihm der Aussteller gegeben hat. Das Fehlerobjekt enthält in expiredAt den genauen Zeitpunkt.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Kleine Uhrenabweichung explizit zulassen

    clockTolerance akzeptiert Sekunden und gilt für exp und nbf. Halte den Wert klein (30–60 s) – er soll Uhrendrift abfangen, nicht die Laufzeit von Tokens verlängern.

    js
    jwt.verify(token, publicKey, {
      algorithms: ["ES256"],
      clockTolerance: 30, // seconds of tolerated skew
    });
  2. 2.

    exp untersuchen, bevor du der Uhr die Schuld gibst

    Dekodiere die Claims und gib exp neben deiner aktuellen Zeit aus. Sieht exp aus wie 1.7e12, hast du einen Fehler mit Millisekunden; liegt es Minuten in der Vergangenheit, brauchst du eine Refresh-Logik.

    js
    const { exp } = jwt.decode(token);
    console.log("exp:", new Date(exp * 1000).toISOString());
    console.log("now:", new Date().toISOString());
  3. 3.

    Uhren synchronisieren und einen Refresh-Pfad ergänzen

    Betreibe NTP (chrony/systemd-timesyncd) auf den prüfenden Hosts und implementiere clientseitig einen Token-Refresh bei 401-Antworten. Bring ignoreExpiration: true nie in die Produktion – damit wird jedes abgeflossene Token zu dauerhaft gültigen Zugangsdaten.

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen