Fluxo de Autenticação
Este diagrama ilustra o processo completo de autenticação no ecossistema FitLocus, incluindo registro, login e renovação de tokens.Visão Geral
O sistema de autenticação do FitLocus utiliza:
- Autenticação baseada em JWT (JSON Web Tokens)
- Integração com Firebase Authentication
- Controle de acesso baseado em tipos de usuário
- Renovação automática de tokens
Diagrama de Fluxo de Autenticação

Processo de Registro
O processo de registro de usuários no FitLocus segue estas etapas:Detalhes do Processo
-
Validação de Dados:
- Email válido e único
- Senha com pelo menos 8 caracteres, incluindo letras e números
- Nome completo obrigatório
-
Criação de Conta:
- Geração de ID único
- Hash da senha com BCrypt
- Definição do tipo de usuário (ALUNO/PERSONAL)
- Armazenamento no banco de dados
-
Confirmação de Email:
- Geração de token de confirmação
- Envio de email com link de confirmação
- Expiração do token após 24 horas
Processo de Login
O processo de login no FitLocus segue estas etapas:Detalhes do Token JWT
O token JWT gerado pelo FitLocus contém as seguintes informações:- sub: ID do usuário
- name: Nome completo do usuário
- email: Email do usuário
- userType: Tipo de usuário (ALUNO/PERSONAL)
- iat: Timestamp de emissão do token
- exp: Timestamp de expiração do token (24 horas após emissão)
Integração com Firebase
O FitLocus também suporta autenticação via Firebase, seguindo este fluxo:Renovação de Token
O processo de renovação automática de tokens segue estas etapas:Logout
O processo de logout segue estas etapas:Controle de Acesso
O FitLocus implementa controle de acesso baseado em tipos de usuário:Permissões por Tipo de Usuário
| Recurso | ALUNO | PERSONAL |
|---|---|---|
| Ver próprio perfil | ✅ | ✅ |
| Editar próprio perfil | ✅ | ✅ |
| Ver treinos atribuídos | ✅ | ✅ |
| Criar treinos | ❌ | ✅ |
| Atribuir treinos | ❌ | ✅ |
| Ver lista de alunos | ❌ | ✅ |
| Gerenciar exercícios | ❌ | ✅ |
Considerações de Segurança
-
Proteção contra CSRF:
- Tokens JWT são armazenados em localStorage
- Implementação de CORS para restringir origens
-
Proteção contra XSS:
- Sanitização de inputs
- Content Security Policy (CSP)
-
Rate Limiting:
- Limite de 10 tentativas de login por minuto
- Bloqueio temporário após múltiplas falhas
-
Monitoramento:
- Logging de tentativas de login
- Alertas para atividades suspeitas