Mensagens de Erro
Esta seção lista todas as possíveis mensagens de erro que podem ocorrer durante o processo de autenticação e integração.
Erros na Validação da Solicitação de Autorização
unauthorized_client
Erro:
error=unauthorized_client
error_description=The Client ID informed by the client is not valid.Causa: O Client ID informado não é válido ou não está registrado no sistema.
Solução: Verifique se o client_id está correto e se foi fornecido pela Fanbase.
invalid_request - URI não corresponde
Erro:
error=invalid_request
error_description=The informed URI does not match with any of the registered Client's URIs.Causa: A URI de redirecionamento informada não corresponde a nenhuma das URIs registradas para o cliente.
Solução: Verifique se a redirect_uri está exatamente igual à configurada no sistema. Certifique-se de que não há diferenças em maiúsculas/minúsculas, barras finais ou protocolos.
invalid_request - id_token_hint sem prompt
Erro:
error=invalid_request
error_description=The use of the id_token_hint property requires the prompt value to be set as 'none'.Causa: Você utilizou o parâmetro id_token_hint sem definir prompt=none.
Solução: Adicione &prompt=none à sua requisição quando usar id_token_hint.
Erros nos Processos de Troca de Tokens
Parâmetro ausente
Erro:
The request is missing a parameter: (client_id, client_secret, grant_type, code)Causa: Um ou mais parâmetros obrigatórios não foram informados na requisição.
Solução: Verifique se todos os parâmetros obrigatórios estão presentes:
grant_typeclient_idclient_secretcode
Client ID inválido
Erro:
The informed Client ID is invalid.Causa: O Client ID informado não é válido.
Solução: Verifique se o client_id está correto.
Client Secret incorreto
Erro:
The informed Client Secret does not match the correct secret.Causa: O Client Secret informado não corresponde ao secret correto para o Client ID.
Solução: Verifique se o client_secret está correto e corresponde ao client_id informado.
Código de autorização inválido
Erro:
The informed authorization code is invalid.Causas possíveis:
- O código de autorização já foi utilizado
- O código expirou
- O código não é válido
Solução:
- Use cada código de autorização apenas uma vez
- Troque o código por tokens imediatamente após recebê-lo
- Verifique se o código foi copiado corretamente
Grant Type inválido
Erro:
The informed Grant Type is invalid or not implemented.Causa: O Grant Type informado não é válido ou não está implementado.
Solução: Use grant_type=authorization_code para o fluxo de código de autorização.
Códigos de Status HTTP
Além das mensagens de erro específicas, a API pode retornar os seguintes códigos de status HTTP:
| Código | Descrição |
|---|---|
| 200 | Sucesso |
| 400 | Requisição inválida |
| 401 | Não autorizado |
| 403 | Acesso negado |
| 404 | Recurso não encontrado |
| 500 | Erro interno do servidor |
Tratamento de Erros
Exemplo em JavaScript
try {
const response = await fetch('{security-producao}/api/token/v2', {
method: 'POST',
body: new URLSearchParams({
grant_type: 'authorization_code',
client_id: clientId,
client_secret: clientSecret,
code: authorizationCode
})
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error_description || `Erro ${response.status}`);
}
const tokens = await response.json();
return tokens;
} catch (error) {
console.error('Erro ao trocar código por tokens:', error.message);
throw error;
}Exemplo no Callback
const urlParams = new URLSearchParams(window.location.search);
const error = urlParams.get('error');
const errorDescription = urlParams.get('error_description');
if (error) {
console.error('Erro na autenticação:', error);
console.error('Descrição:', errorDescription);
switch (error) {
case 'unauthorized_client':
alert('Client ID inválido. Entre em contato com o suporte.');
break;
case 'invalid_request':
alert('Requisição inválida: ' + errorDescription);
break;
default:
alert('Erro desconhecido: ' + errorDescription);
}
}Suporte
Se você encontrar erros não documentados aqui ou precisar de ajuda adicional, entre em contato com a equipe de suporte da Fanbase.
