Aller au contenu
ecdsa.com
PyJWT (Python)Bibliothèques JWT

Message d’erreur

Invalid audience

Également affiché sous la forme

  • jwt.exceptions.InvalidAudienceError: Invalid audience

À comparer avec « Audience doesn't match », qui signifie que vous avez bien passé `audience`, mais qu’aucune valeur ne coïncidait.

PyJWT (Python) — jwt.exceptions.InvalidAudienceError

Ce que cela signifie

Le jeton contient un claim `aud`, mais `jwt.decode()` a été appelé sans argument `audience`. PyJWT n’ignore pas une audience qu’il ne peut pas vérifier : un jeton qui nomme son destinataire est rejeté, sauf si vous indiquez quel destinataire vous êtes. Le même message apparaît si `aud` a un type invalide (ni une chaîne, ni une liste de chaînes).

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Indiquer à PyJWT quelle audience vous êtes

    Passez l’identifiant de votre API (ou une liste d’identifiants acceptables). Ne désactivez pas `verify_aud` : c’est cette vérification qui empêche d’accepter des jetons destinés à d’autres services.

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

    Réserver le décodage sans vérification à l’inspection

    `verify_signature: False` désactive toutes les vérifications, y compris celle de l’audience. C’est utile pour lire `aud` pendant le débogage, jamais pour autoriser une requête.

    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})

Erreurs associées

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