Pular para o conteúdo
ecdsa.com
jsonwebtoken (Node.js)Bibliotecas de JWT

Mensagem de erro

jwt audience invalid. expected: <audience>

O trecho variável da mensagem recebe o valor que você configurou, por exemplo, “jwt audience invalid. expected: api://orders”.

O que significa

O token foi verificado criptograficamente, mas a claim aud dele não corresponde ao público-alvo que seu verificador exige. A verificação do público-alvo existe para que um token gerado para uma API não possa ser reutilizado contra outra — a assinatura prova quem emitiu o token, enquanto o aud prova para qual serviço ele foi emitido, e as duas verificações precisam passar antes que se possa confiar nas claims.

Por que acontece

Como corrigir

  1. 1.

    Comparar o que o token traz com o que você espera

    Imprima os dois lados. Corrija o que estiver errado: a opção audience do verificador ou o parâmetro audience/resource que o cliente usa ao solicitar o 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.

    Aceitar explicitamente as variantes legítimas

    Se vários identificadores forem realmente válidos para esta API, liste todos — não remova a verificação do público-alvo para fazer o erro desaparecer.

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

Erros relacionados

Ver toda a base de erros de assinatura