Está a ver a documentação do Apigee e do Apigee Hybrid.
    Ver documentação do 
    Apigee Edge.
  
FailedToDecode
Código de erro
steps.jwt.FailedToDecode
Corpo da resposta de erro
{
  "fault": {
    "faultstring": "Failed to Decode Token: policy({0})",
    "detail": {
       "errorcode": "steps.jwt.FailedToDecode"
     }
  }
}
Causa
Este erro ocorre se o símbolo da Web JSON (JWT) especificado no elemento <Source> da política Decode JWT tiver um formato incorreto, for inválido ou não for descodificável.
Um JWT estruturado corretamente deve conter um cabeçalho, um payload e uma assinatura no seguinte formato: header.payload.signature. Se o JWT transmitido para a política DecodeJWT não tiver um componente, recebe o erro. Por exemplo, se o JWT tiver apenas payload.signature, mas não tiver o respetivo header, ocorre o erro.
Diagnóstico
- Identifique a variável especificada no elemento - <Source>da política Decode JWT. Esta variável deve conter o JWT.- Segue-se um exemplo de uma política de descodificação de JWT: - <DecodeJWT name="JWT-Decode-HS256"> <DisplayName>JWT Verify HS256</DisplayName> <Source>request.header.authorization</Source> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </DecodeJWT>- No exemplo acima, o JWT deve estar contido no cabeçalho do pedido de autorização. 
- Examine a variável identificada no passo 1 e verifique se o JWT que contém é válido. Se o JWT de entrada não for válido, esse é o motivo do erro. - No exemplo de pedido da API abaixo, o JWT de entrada é transmitido no cabeçalho do pedido de autorização: - curl -v "http://$EXTERNAL_IP/v1/decodeJWT" -H "Authorization: Bearer eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ.-xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1537t3rGzcM" - Em que - $EXTERNAL_IPé o endereço IP do balanceador de carga externo. Este endereço IP está exposto à Internet. Para mais informações, consulte o artigo Personalize o encaminhamento de acesso.- Uma análise detalhada do JWT mostra que tem o formato - payload.signature, que é inválido. O formato esperado do JWT é- header.payload.signature. Consequentemente, a política Decode JWT falha com o erro :- "faultstring": "Failed to Decode Token: policy({0})"
Resolução
Certifique-se de que o JWT transmitido para a política Decode JWT contém todos os três elementos, tem o formato correto e é descodificável.
Para corrigir o exemplo apresentado acima, pode transmitir um JWT válido com o formato header.payload.signature.  Isto pode ser feito através da chamada da API com o comando cURL da seguinte forma:
curl -v "http://$EXTERNAL_IP/v1/decodeJWT" -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ.-xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1537t3rGzcM"
    Em que $EXTERNAL_IP é o endereço IP do balanceador de carga externo.
    Este endereço IP está exposto à Internet. Para mais informações, consulte o artigo
    Personalize o encaminhamento de acesso.
  
InvalidToken
Código de erro
steps.jwt.InvalidToken
Corpo da resposta de erro
{
  "fault": {
    "faultstring": "Invalid token: policy({0})",
    "detail": {
      "errorcode": "steps.jwt.InvalidToken"
     }
  }
}
Causa
Este erro ocorre se a variável de fluxo especificada no elemento <Source> da política Decode JWT:
- Fora do âmbito (não disponível no fluxo específico em que a política está a ser executada) ou
- não é possível resolver (não está definido)
Diagnóstico
- Identifique a variável especificada no elemento - <Source>da política Decode JWT. Esta variável deve conter o JWT.- Segue-se um exemplo de uma política de descodificação de JWT: - <DecodeJWT name="JWT-Decode-HS256"> <DisplayName>JWT Verify HS256</DisplayName> <Source>request.header.authorization</Source> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </DecodeJWT>- No exemplo acima, o cabeçalho do pedido de autorização deve conter o JWT. 
- Determine se a variável identificada no passo 1 está definida e disponível no fluxo em que a política Decode JWT é executada. 
- Se a variável for: - Fora do âmbito (não disponível no fluxo específico em que a política está a ser executada) ou
- não é possível resolver (não está definido)
 - Nesse caso, essa é a causa do erro. - No pedido de API de exemplo abaixo, o JWT não é transmitido no cabeçalho do pedido de autorização pelo utilizador. - curl -v "http://$EXTERNAL_IP/v1/decodeJWT" 
    Em que $EXTERNAL_IP é o endereço IP do balanceador de carga externo.
    Este endereço IP está exposto à Internet. Para mais informações, consulte o artigo
    Personalize o encaminhamento de acesso.
  
Because the authorization request header is not passed, the Decode JWT policy fails with the error:
```
"faultstring": "Invalid token: policy({0})"
```
Resolução
Certifique-se de que a variável referenciada no elemento <Source> da política Decode JWT está definida, contém um JWT válido (decodificável) e está disponível no fluxo específico onde a política Decode JWT está a ser executada.
Para corrigir o exemplo apresentado acima, pode transmitir um JWT válido no cabeçalho de autorização do pedido. Isto pode ser feito através da chamada da API com o comando cURL da seguinte forma:
curl -v "http://$EXTERNAL_IP/v1/decodeJWT" -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ.-xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1537t3rGzcM"
    Em que $EXTERNAL_IP é o endereço IP do balanceador de carga externo.
    Este endereço IP está exposto à Internet. Para mais informações, consulte o artigo
    Personalize o encaminhamento de acesso.