Zum Inhalt springen
ecdsa.com
PyJWT (Python)JWT-Bibliotheken

Fehlermeldung

Invalid audience

Auch ausgegeben als

  • jwt.exceptions.InvalidAudienceError: Invalid audience

Vergleiche mit „Audience doesn't match“: Diese Meldung bedeutet, dass du `audience` zwar übergeben hast, aber kein Wert übereinstimmte.

PyJWT (Python) — jwt.exceptions.InvalidAudienceError

Was der Fehler bedeutet

Das Token enthält einen Claim `aud`, aber `jwt.decode()` wurde ohne das Argument `audience` aufgerufen. PyJWT ignoriert keine Audience, die es nicht prüfen kann: Ein Token, das seinen Empfänger nennt, wird abgelehnt, solange du nicht angibst, welcher Empfänger du bist. Dieselbe Meldung erscheint, wenn `aud` einen ungültigen Typ hat (weder ein String noch eine Liste von Strings).

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    PyJWT mitteilen, welche Audience du bist

    Übergib den Bezeichner deiner API (oder eine Liste akzeptabler Bezeichner). Schalte `verify_aud` nicht ab – genau diese Prüfung verhindert, dass Tokens für andere Dienste akzeptiert werden.

    python
    claims = jwt.decode(
        token,
        signing_key,
        algorithms=["ES256"],
        audience="https://api.example.com",  # the identifier your API is registered with
    )
  2. 2.

    Dekodieren ohne Prüfung nur zum Ansehen verwenden

    `verify_signature: False` schaltet jede Prüfung ab, auch die der Audience. Das ist nützlich, um beim Debugging `aud` zu lesen, aber nie, um eine Anfrage zu autorisieren.

    python
    # Reading claims without trusting them (debugging, routing) - never for authorization.
    header = jwt.get_unverified_header(token)
    claims = jwt.decode(token, options={"verify_signature": False})

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen