Bem-vindo à documentação da AuthX API - seu sistema de autenticação completo e seguro para aplicações.
A AuthX API oferece um sistema completo de autenticação com:
- ✅ Criação de usuários com validação de dados
- ✅ Login seguro com JWT tokens
- ✅ Verificação de tokens para autenticação
- ✅ Rate limiting baseado em planos
- ✅ Headers de segurança obrigatórios
Base URL: https://sua-api.com
Todas as rotas requerem dois headers obrigatórios:
| Header | Tipo | Descrição | Obrigatório |
|---|---|---|---|
app-id |
string | ID único da sua aplicação | ✅ |
public-key |
string | Chave pública da sua aplicação | ✅ |
- Acesse o painel administrativo da AuthX
- Crie uma nova aplicação
- Copie o
app-idepublic-keyfornecidos
Sua aplicação possui limites semanais baseados no plano:
| Plano | Limite Semanal | Custo por Operação |
|---|---|---|
| Free | 100 requests | GET: 0.4, LOGIN: 0.6, CREATE: 2, DELETE: 0.8 |
| Basic | 1.000 requests | |
| Pro | 10.000 requests |
💡 Dica: O contador é resetado automaticamente a cada 7 dias.
Cria um novo usuário no sistema de autenticação.
Endpoint: POST /v1/auth/create
app-id: seu-app-id-aqui
public-key: sua-chave-publica-aqui
Content-Type: application/json{
"name": "João Silva",
"email": "joao@exemplo.com",
"password": "minhasenha123"
}- name: Obrigatório, mínimo 1 caractere
- email: Obrigatório, formato de email válido
- password: Obrigatório, mínimo 8 caracteres
{
"status": "success",
"message": "User created successfully",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}{
"error": "User already exists with this email"
}Autentica um usuário existente e retorna um token JWT.
Endpoint: POST /v1/auth/login
app-id: seu-app-id-aqui
public-key: sua-chave-publica-aqui
Content-Type: application/json{
"email": "joao@exemplo.com",
"password": "minhasenha123"
}- email: Obrigatório, formato de email válido
- password: Obrigatório, mínimo 8 caracteres
{
"status": "success",
"message": "Login successful",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}{
"error": "Invalid email or password"
}Retorna os dados do usuário autenticado usando o token JWT.
Endpoint: GET /v1/token
app-id: seu-app-id-aqui
public-key: sua-chave-publica-aqui
jwt: seu-token-jwt-aqui{
"status": "success",
"message": "Login successful",
"token": {
"id": "uuid-do-usuario",
"name": "João Silva",
"email": "joao@exemplo.com",
"email_verified": false,
"is_active": true,
"createdAt": "2024-01-15T10:30:00.000Z",
"last_login_at": "2024-01-15T14:20:00.000Z",
"updatedAt": "2024-01-15T14:20:00.000Z"
}
}{
"error": "Invalid token"
}| Código | Descrição | Solução |
|---|---|---|
| 400 | Bad Request | Verifique os dados enviados e headers obrigatórios |
| 401 | Unauthorized | Verifique suas credenciais (app-id, public-key, jwt) |
| 404 | Not Found | Usuário não encontrado |
| 409 | Conflict | Email já está em uso |
| 429 | Too Many Requests | Limite semanal atingido |
{
"error": "Missing or invalid public key in headers"
}{
"error": "Weekly request limit of 100 reached for free plan"
}{
"error": "Invalid token"
}const axios = require('axios');
const API_BASE = 'https://sua-api.com';
const APP_ID = 'seu-app-id';
const PUBLIC_KEY = 'sua-chave-publica';
// Headers padrão
const headers = {
'app-id': APP_ID,
'public-key': PUBLIC_KEY,
'Content-Type': 'application/json'
};
// 1. Criar usuário
async function criarUsuario(dadosUsuario) {
try {
const response = await axios.post(`${API_BASE}/v1/auth/create`, dadosUsuario, { headers });
console.log('Usuário criado:', response.data);
return response.data.token;
} catch (error) {
console.error('Erro ao criar usuário:', error.response.data);
}
}
// 2. Login
async function login(email, password) {
try {
const response = await axios.post(`${API_BASE}/v1/auth/login`,
{ email, password },
{ headers }
);
console.log('Login realizado:', response.data);
return response.data.token;
} catch (error) {
console.error('Erro no login:', error.response.data);
}
}
// 3. Obter dados do usuário
async function obterDadosUsuario(token) {
try {
const response = await axios.get(`${API_BASE}/v1/token`, {
headers: { ...headers, 'jwt': token }
});
console.log('Dados do usuário:', response.data);
return response.data.token;
} catch (error) {
console.error('Erro ao obter dados:', error.response.data);
}
}
// Exemplo de uso
async function exemplo() {
// Criar usuário
const tokenCriacao = await criarUsuario({
name: 'João Silva',
email: 'joao@exemplo.com',
password: 'minhasenha123'
});
// Login
const tokenLogin = await login('joao@exemplo.com', 'minhasenha123');
// Obter dados
const dadosUsuario = await obterDadosUsuario(tokenLogin);
}import requests
API_BASE = 'https://sua-api.com'
APP_ID = 'seu-app-id'
PUBLIC_KEY = 'sua-chave-publica'
headers = {
'app-id': APP_ID,
'public-key': PUBLIC_KEY,
'Content-Type': 'application/json'
}
# 1. Criar usuário
def criar_usuario(dados_usuario):
response = requests.post(f'{API_BASE}/v1/auth/create',
json=dados_usuario,
headers=headers)
if response.status_code == 201:
return response.json()['token']
else:
print(f'Erro: {response.json()}')
return None
# 2. Login
def login(email, password):
response = requests.post(f'{API_BASE}/v1/auth/login',
json={'email': email, 'password': password},
headers=headers)
if response.status_code == 200:
return response.json()['token']
else:
print(f'Erro: {response.json()}')
return None
# 3. Obter dados do usuário
def obter_dados_usuario(token):
headers_with_jwt = {**headers, 'jwt': token}
response = requests.get(f'{API_BASE}/v1/token', headers=headers_with_jwt)
if response.status_code == 200:
return response.json()['token']
else:
print(f'Erro: {response.json()}')
return None
# Exemplo de uso
if __name__ == '__main__':
# Criar usuário
token = criar_usuario({
'name': 'João Silva',
'email': 'joao@exemplo.com',
'password': 'minhasenha123'
})
if token:
# Obter dados
dados = obter_dados_usuario(token)
print(dados)# 1. Criar usuário
curl -X POST https://sua-api.com/v1/auth/create \
-H "app-id: seu-app-id" \
-H "public-key: sua-chave-publica" \
-H "Content-Type: application/json" \
-d '{
"name": "João Silva",
"email": "joao@exemplo.com",
"password": "minhasenha123"
}'
# 2. Login
curl -X POST https://sua-api.com/v1/auth/login \
-H "app-id: seu-app-id" \
-H "public-key: sua-chave-publica" \
-H "Content-Type: application/json" \
-d '{
"email": "joao@exemplo.com",
"password": "minhasenha123"
}'
# 3. Obter dados do usuário
curl -X GET https://sua-api.com/v1/token \
-H "app-id: seu-app-id" \
-H "public-key: sua-chave-publica" \
-H "jwt: seu-token-jwt"- Expiração: 4 dias
- Algoritmo: HS256
- Uso: Incluir no header
jwtpara autenticação
- Nunca exponha suas chaves públicas no frontend
- Sempre use HTTPS em produção
- Valide tokens no servidor antes de processar
- Monitore seu uso de rate limiting
- Mantenha senhas seguras (mínimo 8 caracteres)
Para dúvidas ou suporte técnico:
- 📧 Email: suporte@authx.com
- 📚 Documentação: docs.authx.com
- 🐛 Bugs: github.com/authx/issues
- ✅ Implementação inicial da API
- ✅ Sistema de rate limiting semanal
- ✅ Autenticação JWT
- ✅ Validação de dados com Zod
© 2024 AuthX. Todos os direitos reservados.