Aller au contenu
ecdsa.com
jsonwebtoken (Node.js)Bibliothèques JWT

Message d’erreur

jwt audience invalid. expected: <audience>

L’espace réservé est rempli avec la valeur que vous avez configurée, par exemple « jwt audience invalid. expected: api://orders ».

Ce que cela signifie

Le jeton a passé la vérification cryptographique, mais son claim aud ne correspond pas à l’audience qu’exige votre vérificateur. Le contrôle d’audience existe pour qu’un jeton créé pour une API ne puisse pas être rejoué contre une autre : la signature prouve qui a émis le jeton, aud prouve pour quel service il a été émis, et les deux contrôles doivent réussir avant que l’on puisse se fier aux claims.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Comparer ce que porte le jeton avec ce que vous attendez

    Affichez les deux côtés. Corrigez celui qui est en tort : l’option audience du vérificateur, ou le paramètre audience/resource que le client utilise pour demander le jeton.

    js
    const { aud } = jwt.decode(token);
    console.log("token aud:", aud);           // e.g. "api://orders" or ["api://orders"]
    jwt.verify(token, key, {
      algorithms: ["ES256"],
      audience: "api://orders",              // must match exactly (string, array or RegExp)
    });
  2. 2.

    Accepter explicitement les variantes légitimes

    Si plusieurs identifiants sont réellement valides pour cette API, listez-les ; ne supprimez pas le contrôle d’audience pour faire disparaître l’erreur.

    js
    jwt.verify(token, key, {
      algorithms: ["ES256"],
      audience: ["api://orders", "https://api.example.com"],
    });

Erreurs associées

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