Zum Inhalt springen
ecdsa.com
firebase/php-jwt (PHP)PHP

Fehlermeldung

"kid" invalid, unable to lookup correct key

Auch ausgegeben als

  • "kid" empty, unable to lookup correct key

„\"kid\" empty, unable to lookup correct key“ wird bei Tokens ohne Header `kid` geworfen, wenn ein Schlüssel-Array übergeben wird.

firebase/php-jwt (PHP) — UnexpectedValueException from JWT::decode with a key array

Was der Fehler bedeutet

Du hast `JWT::decode` ein Array von Schlüsseln übergeben (typischerweise aus `JWK::parseKeySet`), und das Array hat keinen Eintrag für den `kid` im Header des Tokens. php-jwt wählt den Schlüssel streng nach `kid` aus und probiert keine anderen Schlüssel. Die verwandte Meldung „\"kid\" empty“ bedeutet, dass das Token überhaupt keinen `kid` hat, was sich mit einem Schlüssel-Array nicht auflösen lässt.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    CachedKeySet verwenden

    CachedKeySet speichert das JWKS über PSR-6 zwischen und ruft es erneut ab, wenn ein unbekannter `kid` ankommt – optional mit Rate Limiting, damit zufällige Werte für `kid` den Aussteller nicht mit Anfragen überfluten.

    php
    use Firebase\JWT\CachedKeySet;
    
    // Refetches the JWKS when a token names a kid the cache does not have (rate-limited).
    $keys = new CachedKeySet($jwksUri, $httpClient, $httpFactory, $cachePool, 3600, true);
    $claims = JWT::decode($token, $keys);
  2. 2.

    Bei Ausstellern ohne kid einen einzelnen Key übergeben

    Hat der Aussteller genau einen Schlüssel und lässt `kid` weg, übergib diesen Schlüssel direkt.

    php
    // Issuer without kid and with exactly one key: pass a Key object, not an array.
    $claims = JWT::decode($token, new Key($publicKeyPem, 'ES256'));

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen