Aller au contenu
ecdsa.com
jose (JavaScript)Bibliothèques JWT

Message d’erreur

Invalid Compact JWS

jose (JavaScript) — JWSInvalid, code ERR_JWS_INVALID

Ce que cela signifie

jose n’a pas pu découper votre entrée en trois segments séparés par des points, ceux de la sérialisation compacte JWS (header.payload.signature). La chaîne que vous avez passée n’est structurellement pas un jeton signé ; aucune opération cryptographique n’a été tentée. Cette erreur est l’équivalent dans jose du « jwt malformed » de jsonwebtoken et, comme lui, elle signifie que le problème se situe en amont de la bibliothèque JWT, dans ce qui a produit ou transporté la chaîne.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Nettoyer l’entrée et vérifier ses segments

    Supprimez les espaces superflus, retirez le schéma et vérifiez le nombre de segments avant d’appeler jose : vous obtenez des erreurs applicatives précises au lieu d’un échec d’analyse générique.

    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.

    Diriger les jetons JWE vers le déchiffrement

    Si vous comptez cinq segments, le jeton est chiffré. Utilisez jwtDecrypt avec la clé privée du destinataire au lieu de jwtVerify.

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

    Retrouver l’endroit où la chaîne a été construite

    Si une valeur nettoyée échoue encore, journalisez sa longueur et ses premiers caractères à chaque étape : client, passerelle, stockage, gestionnaire. Le premier segment d’un JWT signé est du JSON encodé en base64url, donc les vrais jetons commencent par « eyJ » (l’encodage de '{"') ; l’étape où cela cesse d’être vrai est celle où la corruption se produit.

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

Erreurs associées

Parcourir toute la base de données des erreurs de signature