Skip to main content

API de Usuários

A API de Usuários do FitLocus fornece endpoints para gerenciamento de contas de usuário, autenticação, perfis e preferências.

Visão Geral

A API de Usuários permite:

  • Registro e autenticação de usuários
  • Gerenciamento de perfis de usuário
  • Recuperação e atualização de informações pessoais
  • Gerenciamento de preferências e configurações
  • Consulta de métricas e estatísticas de usuário

Tipos de Usuário

O FitLocus possui dois tipos principais de usuário:
Cada tipo de usuário tem acesso a diferentes funcionalidades e endpoints, conforme detalhado na documentação de tipos de usuário.

Modelo de Dados

UserDTO

O objeto UserDTO é utilizado para transferência de dados de usuário entre o cliente e o servidor:

RegisterRequest

Objeto utilizado para registro de novos usuários:

LoginRequest

Objeto utilizado para autenticação de usuários:

AuthResponse

Resposta retornada após autenticação bem-sucedida:

Endpoints Principais

Detalhes de Implementação

Autenticação

Todos os endpoints, exceto /users/register, /users/login, /users/firebase-login, /users/forgot-password e /users/reset-password, requerem autenticação via token JWT no cabeçalho Authorization:
Para mais detalhes sobre autenticação, consulte a documentação de autenticação.

Controle de Acesso

O acesso aos endpoints é controlado com base no tipo de usuário:
Alguns endpoints, como /users/{id}, implementam verificações adicionais para garantir que um usuário só possa acessar seus próprios dados ou dados de usuários relacionados (no caso de personal trainers e seus alunos).

Validação de Dados

Todos os endpoints que recebem dados do cliente implementam validação rigorosa:
A anotação @Valid ativa a validação baseada em anotações como @NotNull, @Email, @Size, etc., definidas no objeto RegisterRequest.

Exemplos de Uso

Registro de Usuário

Login

Obter Perfil

Atualizar Perfil

Códigos de Status

Considerações de Segurança

  1. Senhas: As senhas são armazenadas utilizando o algoritmo BCrypt para hash seguro.
  2. Dados Sensíveis: Informações sensíveis como senha nunca são retornadas nas respostas da API.
  3. Rate Limiting: A API implementa limitação de taxa para prevenir ataques de força bruta.
  4. Validação: Todos os dados de entrada são validados rigorosamente para prevenir injeção de dados maliciosos.
  5. HTTPS: Todas as comunicações com a API devem ser realizadas através de HTTPS.

Próximos Passos

Para mais detalhes sobre endpoints específicos, consulte: