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

Fehlermeldung

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

Der Text nach „expected:“ ist das, was du konfiguriert hast; bei einem Array von Ausstellern werden die Werte mit Kommas verbunden.

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

Was der Fehler bedeutet

Der Claim `iss` des Tokens ist nicht gleich der Option `issuer`, die du `jwt.verify()` übergeben hast (oder das Token hat überhaupt kein `iss`). Der Text nach „expected:“ ist dein konfigurierter Wert, nicht der des Tokens. jsonwebtoken vergleicht Strings exakt: Die Signatur ist gültig, aber das Token gibt an, von einer Stelle zu stammen, der dein Dienst nicht vertraut.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    iss des Tokens als JSON ausgeben

    `JSON.stringify` macht unsichtbare Unterschiede sichtbar – Schrägstriche am Ende, Whitespace, einen anderen Pfad. Kopiere danach den `issuer` des Providers aus `/.well-known/openid-configuration` in deine Konfiguration.

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

    Mehrere Aussteller nur bewusst akzeptieren

    Die Option `issuer` akzeptiert ein Array. Nutze es für eine geplante Migration zwischen zwei Schreibweisen oder zwischen Ausstellern, die du selbst betreibst – und ordne jedem Aussteller seine eigenen Schlüssel zu.

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

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen