Fluxo de Autenticação
O sistema de autenticação da QuettaCode utiliza sessões baseadas em cookies com armazenamento em Redis.
Diagrama de Sequência
Componentes
1. Spring Security
Configuração de segurança que protege todas as rotas /api/**.
2. Spring Session (Redis)
Sessões são armazenadas no Redis com TTL configurável.
// Configuração padrão
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400) // 24h
3. Frontend (useLogin Hook)
// apps/web/src/hooks/useAuth.ts
const { login, isLoading } = useLogin();
await login({ email, password });
// Após sucesso: Cookie SESSION é definido
// Redireciona para /dashboard
Fluxo de Logout
Segurança
Importante
- Senhas são hasheadas com BCrypt
- Sessões expiram em 24 horas de inatividade
- Rate limiting de 5 tentativas/minuto no login
- IP é bloqueado temporariamente após falhas consecutivas