Saltar al contenido
ecdsa.com
PyJWT (Python)Bibliotecas de JWT

Mensaje de error

Invalid audience

También se muestra como

  • jwt.exceptions.InvalidAudienceError: Invalid audience

Compáralo con «Audience doesn't match», que significa que `audience` sí se pasó, pero ningún valor coincidió.

PyJWT (Python) — jwt.exceptions.InvalidAudienceError

Qué significa

El token contiene un claim `aud`, pero se llamó a `jwt.decode()` sin el argumento `audience`. PyJWT no ignora una audiencia que no puede comprobar: un token que nombra a su destinatario se rechaza salvo que indiques qué destinatario eres. El mismo mensaje aparece si `aud` tiene un tipo no válido (ni una cadena ni una lista de cadenas).

Por qué ocurre

Cómo solucionarlo

  1. 1.

    Indicar a PyJWT qué audiencia eres

    Pasa el identificador de tu API (o una lista de identificadores aceptables). No desactives `verify_aud`: esa comprobación es lo que impide que se acepten tokens destinados a otros servicios.

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

    Usar la decodificación sin verificación solo para inspeccionar

    `verify_signature: False` desactiva todas las comprobaciones, incluida la de audiencia. Sirve para leer `aud` durante la depuración, nunca para autorizar una solicitud.

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

Errores relacionados

Explorar toda la base de datos de errores de firma