Pular para o conteúdo
ecdsa.com
PyJWT (Python)Bibliotecas de JWT

Mensagem de erro

Invalid audience

Também aparece como

  • jwt.exceptions.InvalidAudienceError: Invalid audience

Compare com “Audience doesn't match”, que significa que você passou `audience`, mas nenhum valor coincidiu.

PyJWT (Python) — jwt.exceptions.InvalidAudienceError

O que significa

O token contém a claim `aud`, mas `jwt.decode()` foi chamada sem o argumento `audience`. O PyJWT não ignora um público-alvo que não consegue verificar: um token que indica o destinatário é rejeitado, a menos que você diga qual destinatário você é. A mesma mensagem aparece se `aud` tiver um tipo inválido (nem string, nem lista de strings).

Por que acontece

Como corrigir

  1. 1.

    Informar ao PyJWT qual público-alvo você é

    Passe o identificador da sua API (ou uma lista de identificadores aceitáveis). Não desative `verify_aud` — é essa verificação que impede que tokens destinados a outros serviços sejam aceitos.

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

    Usar a decodificação sem verificação só para inspecionar

    `verify_signature: False` desativa todas as verificações, inclusive a do público-alvo. Isso serve para ler `aud` durante a depuração, nunca para autorizar uma requisição.

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

Erros relacionados

Ver toda a base de erros de assinatura