Login
POST /api/v1/auth/login
Content-Type: application/json
{
"email": "voce@empresa.com.br",
"senha": "SENHA_ARMAZENADA_COM_SEGURANCA"
}
Resposta:
{
"accessToken": "eyJ...",
"refreshToken": "eyJ...",
"tokenType": "Bearer",
"userId": "7f95d30f-9685-4305-8cdb-8eec54f04154",
"lojas": [
{
"id": "f73b3723-2fe9-4239-a4e6-4c9fc463497d",
"nome": "Loja principal",
"name": "Loja principal"
}
]
}
Use o mesmo e-mail e a mesma senha de uma conta ativa no painel. Se ainda não tiver conta, faça o cadastro e confirme o e-mail.
O login serve para obter a sessão e as lojas autorizadas.
Headers autenticados
Authorization: Bearer <accessToken>
X-Tenant-Id: <lojas[].id>
Separe credenciais, filas e dados por loja.
Renovação
POST /api/v1/auth/refresh
Content-Type: application/json
{
"token": "REFRESH_TOKEN_MAIS_RECENTE"
}
O campo de entrada é token. A resposta traz novos accessToken e refreshToken.
- use um lock para impedir renovações concorrentes;
- substitua os dois tokens de forma atômica;
- descarte o refresh token anterior;
- repita a operação original no máximo uma vez.
Segurança
- Nunca registre senha ou tokens.
- Não envie credenciais ao navegador.
- Use um gerenciador de segredos.
- Em
401após uma renovação, interrompa a fila e faça novo login. - Em
403, confira permissão eX-Tenant-Id; não tente outra loja.