Um aplicativo web full-stack completo demonstrando um sistema de autenticação seguro utilizando React, Express e JSON Web Tokens (JWT).
Este projeto implementa um sistema completo de autenticação de usuários. Inclui funcionalidades de registro, login, rotas protegidas e gerenciamento de sessão baseado em tokens JWT.
- React v19.1.0 - Biblioteca JavaScript para construção de interfaces
- Vite v7.0.4 - Ferramenta de build rápida
- React Router DOM v7.7.1 - Roteamento do lado do cliente
- Tailwind CSS v3.4.17 - Framework CSS para design responsivo
- React Hook Form v7.62.0 - Gerenciamento de formulários
- Zod v4.0.14 - Validação de esquemas
- Axios v1.11.0 - Cliente HTTP para requisições API
- Express v5.1.0 - Framework web para Node.js
- jsonwebtoken v9.0.2 - Implementação de JWT
- CORS v2.8.5 - Middleware para habilitar requisições cross-origin
- ✅ Registro de usuário
- ✅ Autenticação de usuário (login/logout)
- ✅ Rotas protegidas que requerem autenticação
- ✅ Validação de formulários
- ✅ Gerenciamento de estado de autenticação
- ✅ Armazenamento de token persistente
- ✅ Interface responsiva com Tailwind CSS
react-job/
├── backend/ # Servidor Express
│ ├── middleware/ # Middleware de autenticação JWT
│ └── routes/ # Rotas da API
├── public/ # Arquivos estáticos
├── src/
│ ├── assets/ # Recursos estáticos
│ ├── components/ # Componentes reutilizáveis
│ ├── context/ # Contexto de autenticação React
│ ├── pages/ # Componentes de página
│ └── routes/ # Lógica de proteção de rotas
- Node.js (versão 16+)
- npm ou yarn
-
Clone o repositório:
git clone https://github.com/Ramalho7/Login-System-React.git cd Login-System-React -
Instale as dependências do frontend:
npm install
-
Instale as dependências do backend:
cd backend npm install
-
Inicie o servidor backend (em um terminal):
cd backend npm start -
Inicie o frontend (em outro terminal):
npm run dev
-
Acesse o aplicativo em seu navegador:
http://localhost:5173
-
Registro do Usuário:
- O usuário preenche o formulário de registro
- Os dados são validados com Zod
- As informações do usuário são armazenadas no localStorage
-
Login:
- O usuário envia credenciais para o endpoint
/auth/login - O backend verifica as credenciais
- Um token JWT é gerado e retornado ao cliente
- O token é armazenado no localStorage
- O usuário envia credenciais para o endpoint
-
Acesso a Rotas Protegidas:
- O componente
PrivateRouteverifica a existência de um token válido - Se não houver token, redireciona para a página de login
- Se houver token, o usuário pode acessar a rota protegida
- O componente
-
Logout:
- O token é removido do localStorage
- O estado de autenticação é atualizado
- O usuário é redirecionado para a página de login
- Gerado no servidor usando o pacote
jsonwebtoken - Contém dados do usuário no payload
- Configurado com expiração de 12 horas
- Verificado pelo middleware de autenticação
- Fornece:
- Estado do token
- Função de login
- Função de logout
- Estado de carregamento
- Componente
PrivateRouteenvolve rotas que requerem autenticação - Verifica token antes de renderizar o componente protegido
- Tokens JWT para autenticação sem estado
- Expiração de token configurada
- Validação de dados de entrada com Zod
- Middleware de autenticação para verificação de token