Saltar al contenido
ecdsa.com
jsonwebtoken (Node.js)Bibliotecas de JWT

Mensaje de error

jwt audience invalid. expected: <audience>

El marcador de posición se rellena con el valor que configuras, por ejemplo, «jwt audience invalid. expected: api://orders».

Qué significa

El token superó la verificación criptográfica, pero su claim (declaración) aud no coincide con la audiencia que exige tu verificador. La comprobación de la audiencia existe para que un token emitido para una API no pueda reutilizarse contra otra: la firma demuestra quién emitió el token, mientras que aud demuestra para qué servicio se emitió, y ambas comprobaciones deben superarse antes de que se pueda confiar en los claims.

Por qué ocurre

Cómo solucionarlo

  1. 1.

    Comparar lo que lleva el token con lo que esperas

    Imprime los dos lados. Corrige el que esté mal: la opción audience del verificador o el parámetro audience/resource que usa el cliente al solicitar el token.

    js
    const { aud } = jwt.decode(token);
    console.log("token aud:", aud);           // e.g. "api://orders" or ["api://orders"]
    jwt.verify(token, key, {
      algorithms: ["ES256"],
      audience: "api://orders",              // must match exactly (string, array or RegExp)
    });
  2. 2.

    Aceptar explícitamente las variantes legítimas

    Si varios identificadores son realmente válidos para esta API, enuméralos; no elimines la comprobación de audiencia para que desaparezca el error.

    js
    jwt.verify(token, key, {
      algorithms: ["ES256"],
      audience: ["api://orders", "https://api.example.com"],
    });

Errores relacionados

Explorar toda la base de datos de errores de firma