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

Fehlermeldung

Invalid Compact JWS

jose (JavaScript) — JWSInvalid, code ERR_JWS_INVALID

Was der Fehler bedeutet

jose konnte deine Eingabe nicht in die drei durch Punkte getrennten Segmente der kompakten Serialisierung von JWS (header.payload.signature) zerlegen. Der übergebene String ist schon strukturell kein signiertes Token; kryptografisch wurde nichts versucht. Das ist das jose-Gegenstück zu „jwt malformed“ von jsonwebtoken – und wie bei diesem Fehler liegt das Problem nicht in der JWT-Bibliothek, sondern weiter vorn: bei dem, was den String erzeugt oder transportiert hat.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Eingabe bereinigen und Segmentanzahl prüfen

    Schneide Whitespace an den Rändern ab, entferne das Schema und prüfe die Anzahl der Segmente, bevor du jose aufrufst – so bekommst du präzise Fehler auf Anwendungsebene statt eines allgemeinen Parse-Fehlers.

    js
    const token = raw.replace(/^Bearer\s+/i, "").trim();
    const segments = token.split(".").length;
    if (segments !== 3) throw new Error(`expected JWS (3 segments), got ${segments}`);
  2. 2.

    JWE-Tokens zur Entschlüsselung weiterleiten

    Zählst du fünf Segmente, ist das Token verschlüsselt. Verwende jwtDecrypt mit dem privaten Schlüssel des Empfängers statt jwtVerify.

    js
    import { jwtDecrypt } from "jose";
    
    const { payload } = await jwtDecrypt(token, privateKey); // 5-segment JWE
  3. 3.

    Nachverfolgen, wo der String entstanden ist

    Scheitert auch ein bereinigter Wert, protokolliere an jeder Station seine Länge und die ersten Zeichen – Client, Gateway, Speicher, Handler. Das erste Segment eines signierten JWT ist base64url-kodiertes JSON, echte Tokens beginnen also mit „eyJ“ (der Kodierung von „{"“); an der Station, ab der das nicht mehr stimmt, wird der Wert beschädigt.

    js
    console.log(token.length, JSON.stringify(token.slice(0, 12)));
    // healthy: 300+ 'eyJhbGciOiJF'

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen