Voltar para projetos
Sistema de Autenticação OAuth2

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

Fluxo de autenticação OAuth2
Fluxo de autenticação OAuth2
Fluxo de autenticação OAuth2

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

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

Adicionar transação

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

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

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

  1. Redirecionamento Inicial: Usuario clica em login → Redirecionado para servidor OAuth2
  2. Autenticação: Thymeleaf processa credenciais no backend
  3. Token Generation: JWT gerado com informações do usuário e permissões
  4. Cookie Storage: Token armazenado em cookie seguro
  5. Autorização: Cada requisição validada via JWT
  6. 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.