Zum Inhalt springen
ecdsa.com
jose (JavaScript)JWT-Bibliotheken

Fehlermeldung

"exp" claim timestamp check failed

jose (JavaScript) — JWTExpired, code ERR_JWT_EXPIRED

Was der Fehler bedeutet

Die Claim-Validierung von jose hat das Token abgelehnt, weil der Zeitstempel in exp gemessen an der Uhr des Prüfers in der Vergangenheit liegt. Die Signaturprüfung war bereits bestanden – es geht allein um die Aktualität. Für andere Claims meldet jose Fehler nach demselben Muster ("nbf" claim timestamp check failed), wenn ein Token vor seinem Not-Before-Zeitpunkt verwendet wird.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Begrenzte Toleranz für Uhrenabweichung einstellen

    jose akzeptiert die Option clockTolerance (Anzahl Sekunden oder ein menschenlesbarer String). Halte den Wert klein; er fängt Uhrendrift ab und verlängert nicht die Laufzeit.

    js
    import { jwtVerify } from "jose";
    
    await jwtVerify(token, key, {
      algorithms: ["ES256"],
      clockTolerance: "30s",
    });
  2. 2.

    Zeitachse ausgeben, bevor du etwas änderst

    Vergleiche iat, exp und die aktuelle Zeit des Prüfers. Das Muster verrät die Ursache: exp Sekunden in der Vergangenheit → Problem beim Refresh; exp vor iat → Fehler beim Ausstellen; exp ≈ jetzt, aber Fehlschlag → Uhrenabweichung.

    js
    import { decodeJwt } from "jose";
    
    const { iat, exp } = decodeJwt(token);
    console.log({ iat: new Date(iat * 1000), exp: new Date(exp * 1000), now: new Date() });

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen