Integração de Autenticação
Este guia fornece exemplos práticos para integrar sua aplicação com o sistema de autenticação do FitLocus.Visão Geral
A integração de autenticação com o FitLocus inclui:
- Registro de usuários
- Login com email e senha
- Login com Firebase Authentication
- Gerenciamento de tokens JWT
- Renovação de tokens
- Logout
Requisitos Técnicos
Para integrar com o sistema de autenticação do FitLocus, você precisará:-
Backend:
- Java 21
- Spring Security
- JWT (java-jwt)
- Firebase Admin SDK (opcional, para autenticação social)
-
Frontend:
- Axios ou fetch para requisições HTTP
- Biblioteca de gerenciamento de estado (React Context, Redux, etc.)
- Firebase Authentication SDK (opcional, para autenticação social)
Exemplos de Integração
Backend (Java 21 + Spring Boot)
Configuração de Segurança
Serviço de Autenticação
Serviço JWT
Frontend (React + TypeScript)
Configuração do Cliente HTTP
Serviço de Autenticação
Contexto de Autenticação
Componente de Login
Integração com Firebase Authentication
Configuração do Firebase
Componente de Login com Firebase
Proteção de Rotas
Componente de Rota Protegida
Configuração de Rotas
Melhores Práticas
Segurança
-
Armazenamento de Tokens:
- Em aplicações web, use cookies HttpOnly para armazenar tokens JWT
- Em aplicações móveis, use SecureStorage ou KeyStore
-
Renovação de Tokens:
- Implemente renovação automática de tokens expirados
- Utilize refresh tokens para renovação segura
-
Proteção contra CSRF:
- Implemente tokens CSRF para formulários
- Utilize SameSite=Strict para cookies
Performance
-
Caching:
- Armazene informações do usuário em cache para reduzir requisições
- Implemente expiração de cache para manter dados atualizados
-
Lazy Loading:
- Carregue componentes de autenticação sob demanda
- Utilize code splitting para reduzir o tamanho inicial do bundle
Experiência do Usuário
-
Feedback de Carregamento:
- Exiba indicadores de carregamento durante operações de autenticação
- Forneça mensagens de erro claras e acionáveis
-
Persistência de Sessão:
- Mantenha o usuário logado entre sessões (se desejado)
- Ofereça opção “Lembrar-me” para login persistente
Solução de Problemas
Erros Comuns
| Erro | Causa Provável | Solução |
|---|---|---|
| 401 Unauthorized | Token expirado ou inválido | Renovar token ou redirecionar para login |
| 403 Forbidden | Permissões insuficientes | Verificar tipo de usuário e permissões |
| CORS error | Configuração incorreta de CORS | Configurar CORS no backend para permitir origem |
| Network error | Problemas de conectividade | Implementar retry e feedback ao usuário |
Depuração
Para depurar problemas de autenticação:- Verifique o token JWT em jwt.io
- Inspecione requisições de rede no DevTools
- Verifique logs do servidor para erros de autenticação
- Teste endpoints com Postman ou Insomnia