Credenciais HTTP Request
As credenciais HTTP Request permitem configurar autenticação para requisições HTTP no n8n. Este documento explica como configurar diferentes tipos de autenticação para requisições HTTP, incluindo Basic Auth, Bearer Token, API Key, OAuth 2.0 e autenticação customizada.
Tipos de Autenticação
Basic Auth
Configure autenticação básica com usuário e senha:
// Configuração Basic Auth
{
"name": "Basic Auth Credential",
"username": "seu-usuario",
"password": "sua-senha",
"url": "https://api.exemplo.com"
}
Bearer Token
Use tokens Bearer para autenticação baseada em token:
// Configuração Bearer Token
{
"name": "Bearer Token Credential",
"token": "seu-bearer-token",
"url": "https://api.exemplo.com",
"headers": {
"Authorization": "Bearer {{$credentials.token}}"
}
}
API Key
Configure chaves de API em headers ou parâmetros:
// Configuração API Key
{
"name": "API Key Credential",
"api_key": "sua-api-key",
"url": "https://api.exemplo.com",
"headers": {
"X-API-Key": "{{$credentials.apiKey}}"
}
}
OAuth 2.0
Configure autenticação OAuth 2.0 para APIs que suportam este protocolo:
// Configuração OAuth 2.0
{
"name": "OAuth 2.0 Credential",
"client_id": "seu-client-id",
"client_secret": "seu-client-secret",
"auth_url": "https://api.exemplo.com/oauth/authorize",
"token_url": "https://api.exemplo.com/oauth/token",
"redirect_uri": "https://seu-dominio.com/callback"
}
Digest Auth
Configure autenticação digest quando necessário:
// Configuração Digest Auth
{
"name": "Digest Auth Credential",
"username": "seu-usuario",
"password": "sua-senha",
"realm": "realm-exemplo",
"url": "https://api.exemplo.com"
}
Configuração
Passo a Passo
- Acesse Settings > Credentials
- Clique em "Add Credential"
- Selecione "HTTP Request"
- Configure os parâmetros de autenticação
- Salve as credenciais
Configuração Avançada
// Configuração avançada
{
"name": "HTTP Request Avançado",
"url": "https://api.exemplo.com",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer {{$credentials.token}}",
"X-Custom-Header": "valor-customizado"
},
"timeout": 30000,
"retry": {
"attempts": 3,
"delay": 1000
}
}
Uso
No HTTP Request Node
Após configurar as credenciais, você pode usá-las no node HTTP Request:
// Exemplo de uso no HTTP Request Node
{
"method": "GET",
"url": "https://api.exemplo.com/dados",
"authentication": "{{$credentials.httpRequest}}",
"headers": {
"Accept": "application/json"
}
}
Com Expressões
// Uso com expressões
{
"request": {
"method": "{{$json.method}}",
"url": "{{$credentials.url}}/{{$json.endpoint}}",
"headers": {
"Authorization": "{{$credentials.authHeader}}",
"Content-Type": "application/json"
}
}
}
Segurança
Boas Práticas
- Sempre use HTTPS em produção
- Não armazene credenciais em texto plano
- Use variáveis de ambiente quando possível
- Monitore logs de acesso
Configuração Segura
// Configuração segura
{
"security": {
"use_https": true,
"validate_ssl": true,
"timeout": 30000,
"max_redirects": 5
},
"monitoring": {
"log_requests": true,
"log_errors": true,
"alert_on_failure": true
}
}
Troubleshooting
Problemas Comuns
Erro de autenticação
Sintomas:
- Erro 401 Unauthorized
- Erro 403 Forbidden
- Credenciais não reconhecidas
Soluções:
// Verificar credenciais
{
"debug": {
"url": "{{$credentials.url}}",
"method": "{{$credentials.method}}",
"headers": "{{$credentials.headers}}",
"auth_type": "{{$credentials.authType}}"
}
}
Timeout de conexão
Sintomas:
- Erro de timeout
- Conexão lenta
- Requisições não completam
Soluções:
// Configurar timeout
{
"timeout": {
"request": 60000,
"response": 30000,
"connection": 10000
}
}
Debug de Problemas
Verificar Configuração
// Teste de conectividade
{
"test_request": {
"method": "GET",
"url": "{{$credentials.url}}/health",
"headers": {
"Authorization": "{{$credentials.authHeader}}"
},
"timeout": 10000
}
}
Logs de Erro
# Verificar logs do n8n
n8n logs --level debug | grep "HTTP Request"
# Verificar logs específicos
n8n logs --level error | grep "authentication"
Exemplos Práticos
Exemplo 1: API REST
// Configuração para API REST
{
"workflow": {
"trigger": "webhook",
"action": "api_call",
"http_request": {
"method": "POST",
"url": "https://api.exemplo.com/dados",
"headers": {
"Authorization": "Bearer {{$credentials.token}}",
"Content-Type": "application/json"
},
"body": "{{$json}}"
}
}
}
Exemplo 2: Webhook Seguro
// Configuração para webhook
{
"webhook": {
"url": "https://seu-dominio.com/webhook",
"method": "POST",
"headers": {
"X-Webhook-Key": "{{$credentials.webhookKey}}",
"Content-Type": "application/json"
},
"security": {
"validate_signature": true,
"timeout": 30000
}
}
}
Exemplo 3: API com Rate Limiting
// Configuração com rate limiting
{
"api_config": {
"base_url": "https://api.exemplo.com",
"auth": "{{$credentials.httpRequest}}",
"rate_limit": {
"requests_per_minute": 60,
"delay_between_requests": 1000
},
"retry": {
"max_attempts": 3,
"backoff_multiplier": 2
}
}
}
Próximos Passos
- API Keys - Configurar autenticação com chaves
- Basic Authentication - Configurar autenticação básica
- OAuth Authentication - Configurar OAuth 2.0
- HTTP Request Node - Fazer requisições autenticadas
- Troubleshooting - Resolução de problemas