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: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:
Controle de Acesso
O acesso aos endpoints é controlado com base no tipo de usuário:/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:@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
- Senhas: As senhas são armazenadas utilizando o algoritmo BCrypt para hash seguro.
- Dados Sensíveis: Informações sensíveis como senha nunca são retornadas nas respostas da API.
- Rate Limiting: A API implementa limitação de taxa para prevenir ataques de força bruta.
- Validação: Todos os dados de entrada são validados rigorosamente para prevenir injeção de dados maliciosos.
- HTTPS: Todas as comunicações com a API devem ser realizadas através de HTTPS.