Autenticação
A API usa JWT (Bearer token) com access + refresh tokens.
Conceitos
- Cadastro mínimo — apenas email, senha e nome. Telefone e endereço são coletados no checkout.
- Roles —
customer,seller,admin. Customer é o padrão no signup público. - Seller signup — via convite (waitlist → invite token)
Como usar nas requests
Todas as requests autenticadas usam o header:
Authorization: Bearer <accessToken>
Cadastro (Signup)
POST /auth/signup
{
"email": "cliente@email.com",
"password": "minimo8chars",
"name": "João Silva"
}
| Campo | Obrigatório | Validação |
|---|---|---|
email | Sim | Formato válido, único (409 se duplicado) |
password | Sim | Mínimo 8 caracteres |
name | Sim | 1-150 caracteres |
Response (201)
{
"accessToken": "eyJ...",
"refreshToken": "eyJ...",
"tokenType": "bearer"
}
O usuário é criado com role customer e já recebe tokens para uso imediato.
Login
POST /auth/login
{
"email": "cliente@email.com",
"password": "minhasenha123"
}
Response
{
"accessToken": "eyJ...",
"refreshToken": "eyJ...",
"tokenType": "bearer"
}
Refresh Token
POST /auth/refresh
{
"refreshToken": "eyJ..."
}
Retorna novos access + refresh tokens.
Dados do Usuário
GET /auth/me
Requer Authorization: Bearer <accessToken>.
Response
{
"id": "uuid",
"email": "cliente@email.com",
"name": "João Silva",
"status": "active",
"roles": ["customer"],
"createdAt": "2026-03-25T10:00:00Z"
}
Alterar Senha
POST /auth/change-password
{
"currentPassword": "senhaatual",
"newPassword": "novasenha123"
}
Recuperar Senha
POST /auth/password/forgot
Envia email com token de reset.
GET /auth/password/reset/validate?token=xxx
Valida se o token ainda é válido.
POST /auth/password/reset
{
"token": "token-do-email",
"newPassword": "novasenha123"
}