Skip to content

feat: add session management with device and geolocation tracking#16

Merged
lucas-adm merged 7 commits intoNoteHubBR:mainfrom
lucas-adm:feat/account-sessions
Apr 24, 2026
Merged

feat: add session management with device and geolocation tracking#16
lucas-adm merged 7 commits intoNoteHubBR:mainfrom
lucas-adm:feat/account-sessions

Conversation

@lucas-adm
Copy link
Copy Markdown
Member

Sumário

Implementação do gerenciamento de sessões da conta, permitindo que o usuário visualize todos os dispositivos conectados e desconecte sessões individualmente. Cada sessão é enriquecida com informações de dispositivo (via YAUAA) e geolocalização aproximada (via MaxMind GeoLite2).

Alterações

  • Adicionados campos de dispositivo e geolocalização na entidade Token
  • Adicionado GeoIpService para parse de User-Agent e geolocalização por IP
  • Adicionado getClientIp para captura correta do IP real em produção via Fly.io
  • Adicionados endpoints POST /auth/sessions (listagem protegida por senha) e DELETE /auth/session/{id}
  • Adicionados DTOs AuthSessionsREQ e SessionRES
  • Adicionado findAllByUserId no TokenRepository
  • Adicionados métodos getAllSessions e disconnect no TokenService
  • Adicionada migration V20260421__add_tokens_metadata.sql
  • Configurado heap da JVM no Dockerfile (-Xms256m -Xmx768m)
  • Adicionado GeoLite2-City.mmdb em resources

Necessidade

Usuários precisam de visibilidade e controle sobre as sessões ativas da conta, assim como plataformas como Google e GitHub oferecem. Isso melhora a segurança permitindo que o usuário identifique e encerre acessos não reconhecidos.

Teste manual

  1. Autenticar com uma conta válida
  2. Realizar POST /auth/sessions com a senha da conta
  3. Verificar se a resposta contém os campos de dispositivo, browser, OS e localização corretamente preenchidos
  4. Realizar DELETE /auth/session/{id} com um id retornado na listagem
  5. Verificar se a sessão foi removida

Checklist

  • Código segue o padrão do projeto
  • Documentação atualizada
  • Testes adicionados/atualizados

Breaking Changes

  • Nenhuma

@lucas-adm lucas-adm merged commit b13a9fd into NoteHubBR:main Apr 24, 2026
1 check passed
@lucas-adm lucas-adm deleted the feat/account-sessions branch April 24, 2026 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant