Pular para o conteúdo

Endpoints de Autenticação

Registra uma nova conta de usuário.

POST /api/v1/auth/register
Content-Type: application/json
{
"email": "usuario@exemplo.com",
"first_name": "João",
"last_name": "Silva",
"phone_number": "+5588998689699",
"password": "senha_segura",
"role": "OWNER",
"activity": "SHRIMP_PRODUCER",
"annual_production": "BETWEEN_50_AND_100_TONS",
"address": {
"street": "Rua das Flores",
"number": 123,
"city": "Fortaleza",
"state": "CE",
"zip_code": "60000-000",
"country": "Brazil",
"complement": "Apto 4B",
"is_primary": true
}
}
CampoTipoObrigatórioDescrição
emailstring (email)Email válido do usuário
first_namestringPrimeiro nome do usuário (mínimo 2 caracteres)
last_namestringSobrenome do usuário (mínimo 2 caracteres)
phone_numberstringTelefone no formato internacional (ex: +5588998689699)
passwordstringSenha do usuário
roleenumPapel do usuário: ADMIN, OWNER ou OPERATOR
activityenumTipo de atividade do usuário (veja abaixo)
annual_productionenumFaixa de produção anual (veja abaixo)
addressobjectEndereço principal do usuário
PapelDescrição
ADMINAdministrador do sistema - acesso total
OWNERProprietário de fazenda - gerencia fazendas próprias
OPERATOROperador de fazenda - acesso limitado
TipoDescrição
SHRIMP_PRODUCERProdutor de camarão
FISH_PRODUCERProdutor de peixe
FARM_EMPLOYEEFuncionário de fazenda
FaixaDescrição
FINGERLINGS_JUVENILES_LARVAEProdução de alevinos, juvenis ou larvas
LESS_THAN_50_TONSMenos de 50 toneladas por ano
BETWEEN_50_AND_100_TONSEntre 50 e 100 toneladas por ano
BETWEEN_100_AND_200_TONSEntre 100 e 200 toneladas por ano
BETWEEN_200_AND_500_TONSEntre 200 e 500 toneladas por ano
MORE_THAN_500_TONSMais de 500 toneladas por ano
OTHEROutra faixa de produção
  • Deve iniciar com código do país (ex: +55 para Brasil)
  • Telefones brasileiros: +55 seguido de 10 ou 11 dígitos
  • Exemplo: +5588998689699
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "usuario@exemplo.com",
"first_name": "João",
"last_name": "Silva",
"full_name": "João Silva",
"phone_number": "+5588998689699",
"role": "OWNER",
"activity": "SHRIMP_PRODUCER",
"annual_production": "BETWEEN_50_AND_100_TONS",
"addresses": [
{
"id": "addr-uuid",
"street": "Rua das Flores",
"number": 123,
"city": "Fortaleza",
"state": "CE",
"zip_code": "60000-000",
"country": "Brazil",
"complement": "Apto 4B",
"is_primary": true,
"latitude": null,
"longitude": null,
"created_at": "2025-11-21T10:30:00Z"
}
],
"created_at": "2025-11-21T10:30:00Z",
"updated_at": null
}
StatusDetalhe
400Email já registrado
422Erro de validação (email, telefone, código de estado inválidos, etc.)

Faz login e recebe um token de acesso JWT.

POST /api/v1/auth/login
Content-Type: application/json
{
"email": "usuario@exemplo.com",
"password": "senha_segura",
"remember_me": false
}
CampoTipoObrigatórioDescrição
emailstringEmail do usuário
passwordstringSenha do usuário
remember_mebooleanSe true, token expira em 30 dias
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer"
}
StatusDetalhe
401Email ou senha incorretos

Faz logout e invalida o token atual.

POST /api/v1/auth/logout
Authorization: Bearer <token>
{
"message": "Successfully logged out"
}