Autenticação
Aprenda como autenticar com a API do Rafobase usando chaves de API e proteja suas requisições.
Autenticação
Todas as requisições de API ao Rafobase requerem autenticação. Este guia cobre como obter e usar suas credenciais de API com segurança.
Chaves de API
Rafobase usa chaves de API para autenticação. Cada chave é escopo de uma única conta de merchant.
Tipos de Chave
| Tipo | Prefixo | Caso de Uso |
|---|---|---|
| Ao Vivo | rfb_live_ | Ambiente de produção |
| Teste | rfb_test_ | Desenvolvimento e testes |
Aviso de Segurança: Nunca exponha suas chaves de API em código cliente, repositórios públicos ou logs.
Obtendo Sua Chave de API
- Faça login no Painel do Rafobase
- Navegue para Configurações → Chaves de API
- Clique em Gerar Nova Chave
- Copie e armazene a chave com segurança
As chaves de API são mostradas apenas uma vez na criação. Se perdida, você precisará gerar uma nova e revogar a antiga.
Usando Chaves de API
Inclua sua chave de API no cabeçalho Authorization usando autenticação Bearer:
curl https://api.rafobase.com/v1/members \
-H "Authorization: Bearer rfb_live_xxxxxxxxxxxxx"const response = await fetch('https://api.rafobase.com/v1/members', {
headers: {
'Authorization': `Bearer ${process.env.RAFOBASE_API_KEY}`,
'Content-Type': 'application/json',
},
});import requests
import os
response = requests.get(
'https://api.rafobase.com/v1/members',
headers={
'Authorization': f'Bearer {os.environ["RAFOBASE_API_KEY"]}',
'Content-Type': 'application/json',
}
)Variáveis de Ambiente
Armazene sua chave de API em variáveis de ambiente:
# .env (nunca faça commit deste arquivo)
RAFOBASE_API_KEY=rfb_live_xxxxxxxxxxxxx
RAFOBASE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxExemplos de Framework
// Carregue de .env
require('dotenv').config();
const apiKey = process.env.RAFOBASE_API_KEY;// As variáveis de ambiente do next.config.js são carregadas automaticamente
// Acesse apenas em rotas de API ou componentes de servidor
const apiKey = process.env.RAFOBASE_API_KEY;import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv('RAFOBASE_API_KEY')Verificação de Assinatura de Webhook
Ao receber webhooks, verifique a assinatura para garantir que a requisição é do Rafobase:
import crypto from 'crypto'
function verifyWebhookSignature(payload, signature, secret) {
const expectedSignature = crypto.createHmac('sha256', secret).update(payload).digest('hex')
return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expectedSignature))
}
// Em seu manipulador de webhook
app.post('/webhooks/rafobase', (req, res) => {
const signature = req.headers['x-rafobase-signature']
const isValid = verifyWebhookSignature(
JSON.stringify(req.body),
signature,
process.env.RAFOBASE_WEBHOOK_SECRET
)
if (!isValid) {
return res.status(401).json({ error: 'Assinatura inválida' })
}
// Processe o webhook...
})Rotação de Chave
Periodicamente rotacione suas chaves de API por segurança:
- Gere uma nova chave
- Atualize sua aplicação para usar a nova chave
- Verifique que a nova chave funciona em produção
- Revogue a chave antiga
Configure lembretes de rotação de chave a cada 90 dias como melhor prática de segurança.
Limites de Taxa
As requisições de API são limitadas por taxa por chave de API:
| Plano | Limite de Taxa |
|---|---|
| Gratuito | 100 requisições/minuto |
| Pro | 1.000 requisições/minuto |
| Enterprise | Personalizado |
Os cabeçalhos de limite de taxa são inclusos em toda resposta:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640000000Respostas de Erro
Erros de autenticação retornam status 401 Não Autorizado:
{
"error": {
"code": "unauthorized",
"message": "Chave de API inválida ou ausente"
}
}Melhores Práticas de Segurança
- Nunca exponha chaves em código cliente
- Use variáveis de ambiente - Não codifique as chaves
- Restrinja permissões de chave - Use chaves de teste para desenvolvimento
- Monitore o uso de chave - Revise logs de API regularmente
- Rotacione chaves periodicamente - A cada 90 dias no mínimo
- Use assinaturas de webhook - Sempre verifique webhooks recebidos
Relacionado
- Guia de Webhooks - Configurando endpoints de webhook
- Referência de API - Documentação completa da API