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

Message d’erreur

jwt issuer invalid. expected: https://login.example.com/

Le texte qui suit « expected: » est ce que vous avez configuré, quel qu’il soit ; avec un tableau d’émetteurs, les valeurs sont jointes par des virgules.

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

Ce que cela signifie

Le claim `iss` du jeton n’est pas égal à l’option `issuer` que vous avez passée à `jwt.verify()` (ou le jeton n’a pas du tout d’`iss`). Le texte qui suit « expected: » est la valeur que vous avez configurée, pas celle du jeton. jsonwebtoken compare les chaînes exactement : la signature est donc valide, mais le jeton prétend provenir d’une source à laquelle votre service ne fait pas confiance.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Afficher l’iss du jeton en JSON

    `JSON.stringify` rend visibles les différences invisibles : barres obliques finales, espaces, chemin différent. Copiez ensuite l’`issuer` du fournisseur depuis `/.well-known/openid-configuration` dans votre configuration.

    js
    const { iss } = jwt.decode(token) ?? {};
    console.log(JSON.stringify(iss)); // compare byte for byte with your issuer option
  2. 2.

    N’accepter plusieurs émetteurs que délibérément

    L’option `issuer` accepte un tableau. Utilisez-le pour une migration planifiée entre deux écritures ou entre des émetteurs que vous contrôlez, et associez chaque émetteur à ses propres clés.

    js
    jwt.verify(token, publicKey, {
      algorithms: ["ES256"],
      issuer: ["https://login.example.com/", "https://login.example.com"], // during a migration only
    });

Erreurs associées

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