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

Fehlermeldung

jwt not active

jsonwebtoken (Node.js) — NotBeforeError from jwt.verify()

Was der Fehler bedeutet

`NotBeforeError` von jsonwebtoken: Das Token hat einen Claim `nbf` (not before), der nach der aktuellen Zeit des Prüfers liegt, daher ist das Token noch nicht gültig. Die Eigenschaft `date` des Fehlers enthält den Zeitpunkt, ab dem das Token gültig wird. Die Signatur wurde bereits geprüft und ist in Ordnung.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Kleine Uhrenabweichung zulassen

    `clockTolerance` (in Sekunden) gilt sowohl für `nbf` als auch für `exp`. Halte den Wert bei höchstens einer Minute und behebe echte Drift mit NTP auf beiden Rechnern.

    js
    jwt.verify(token, publicKey, {
      algorithms: ["ES256"],
      clockTolerance: 30, // seconds; applies to nbf and exp
    });
  2. 2.

    Messen, wie früh das Token kommt

    Vergleiche `err.date` mit der Uhr des Prüfers. Sekunden bedeuten Uhrenabweichung; genau die Verzögerung aus `notBefore` bedeutet, dass das Token zu früh verwendet wird; Tausende Jahre bedeuten einen Fehler mit Millisekunden.

    js
    try {
      jwt.verify(token, publicKey, { algorithms: ["ES256"] });
    } catch (err) {
      if (err.name === "NotBeforeError") {
        const early = (err.date.getTime() - Date.now()) / 1000;
        console.warn("token becomes valid in", early.toFixed(1), "s");
      }
      throw err;
    }

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen