
Sistema de Autenticação OAuth2
Cristhyan Couto / 3 de outubro de 2025
Sistema completo de autenticação OAuth2 com controle financeiro pessoal, desenvolvido com Spring Boot no backend e React no frontend.
Tecnologias
Front-end
- React 18.3.1
- Axios
- JWT Authentication
- Cookie Management
Back-end
- Java 21
- Spring Boot 3.5.4
- OAuth2
- JWT (JSON Web Tokens)
- Thymeleaf
- Spring Security
Infraestrutura
- Docker
- PostgreSQL 17.4
Apresentação
Este projeto foi desenvolvido para demonstrar um sistema robusto de autenticação OAuth2 integrado com funcionalidades de controle financeiro pessoal. O foco principal está na segurança e na experiência do usuário, implementando boas práticas de autenticação moderna.
Fluxo de Autenticação



O sistema implementa um fluxo completo de autenticação OAuth2:
- Backend Centralizado: Toda a lógica de autenticação é processada no backend, retornando apenas informações baseadas em tokens JWT válidos
- Redirecionamento Seguro: Quando o usuário acessa o login via frontend, é redirecionado para autenticação no servidor usando Thymeleaf
- Gestão de Tokens: O sistema aguarda em cookies o Token JWT autenticado que o backend disponibiliza após autenticação bem-sucedida
- Renovação Automática: Com tokens de curta duração, o sistema utiliza Refresh Tokens para renovação automática da sessão
Página de Controle Financeiro

O módulo financeiro implementa um sistema de gestão:
- Autenticação por Token: Todas as requisições são autenticadas via Token JWT do usuário
- Dados Personalizados: O backend identifica informações do token e retorna apenas dados do usuário logado
- Controle de Permissões: Sistema de Roles e Authorities para funcionalidades administrativas
- Otimização de Performance: Cache inteligente no frontend para evitar requisições desnecessárias
Adição de Transações

Sistema otimizado para adição de transações:
- Validação Completa: Apenas requisições validadas são processadas
- Cache Inteligente: Novas transações são adicionadas ao cache local antes de nova busca no backend
- Autorização Granular: Verificação de permissões baseada em roles do usuário
Busca e Filtros
Funcionalidade de busca por datas:
- Priorização de Cache: Dados já carregados no frontend têm prioridade
- Busca Otimizada: Backend é consultado apenas quando parâmetros de busca são alterados
- Range de Datas: Filtros flexíveis para períodos específicos
Página de Anotações

Bloco de notas pessoal integrado:
- CRUD Completo: Inserir, ler, deletar e atualizar anotações
- Autenticação JWT: Todas as operações autenticadas via token do usuário
- Interface Simples: Design focado na usabilidade
Informações do Usuário

Página demonstrativa das informações de autenticação:
- Dados do Token: Visualização das informações contidas no JWT
- Status da Sessão: Indicadores de tempo de expiração e renovação
- Perfil do Usuário: Informações básicas e permissões
Arquitetura e Segurança
Fluxo OAuth2 Detalhado
- Redirecionamento Inicial: Usuario clica em login → Redirecionado para servidor OAuth2
- Autenticação: Thymeleaf processa credenciais no backend
- Token Generation: JWT gerado com informações do usuário e permissões
- Cookie Storage: Token armazenado em cookie seguro
- Autorização: Cada requisição validada via JWT
- Refresh Automático: Sistema renova tokens antes da expiração
Segurança Implementada
- JWT com Refresh Tokens: Tokens de curta duração para maior segurança
- Role-Based Access Control: Controle granular de permissões
- HTTPS Enforced: Comunicação sempre criptografada
- Cookie Security: Configurações seguras para armazenamento de tokens
Funcionalidades Principais
Controle Financeiro
- Adicionar, editar e excluir transações
- Categorização de gastos e receitas
- Relatórios por período
- Gráficos de evolução financeira
Sistema de Anotações
- Criar e editar notas pessoais
- Organização por categorias
- Busca em texto completo
Gestão de Usuário
- Visualizar informações do perfil
- Histórico de sessões
- Configurações de segurança
Conclusão
Este projeto demonstra uma implementação robusta de autenticação OAuth2 em um cenário real de aplicação. A combinação de Spring Boot com React oferece uma base sólida para sistemas que requerem alta segurança e boa experiência do usuário.