Skip to main content

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

Fluxo de Autenticação do FitLocus

Processo de Registro

O processo de registro de usuários no FitLocus segue estas etapas:

Detalhes do Processo

  1. Validação de Dados:
    • Email válido e único
    • Senha com pelo menos 8 caracteres, incluindo letras e números
    • Nome completo obrigatório
  2. 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
  3. 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

Considerações de Segurança

  1. Proteção contra CSRF:
    • Tokens JWT são armazenados em localStorage
    • Implementação de CORS para restringir origens
  2. Proteção contra XSS:
    • Sanitização de inputs
    • Content Security Policy (CSP)
  3. Rate Limiting:
    • Limite de 10 tentativas de login por minuto
    • Bloqueio temporário após múltiplas falhas
  4. Monitoramento:
    • Logging de tentativas de login
    • Alertas para atividades suspeitas

Implementação no Frontend

No frontend, a autenticação é gerenciada através de um contexto de autenticação:

Implementação no Backend

No backend, a autenticação é gerenciada através de filtros JWT:

Recursos Adicionais