Skip to content

KaioMuniz/sistemaLoginUsuariosJavaSpringBootApi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ API de Autenticação de Usuários - Spring Boot

Projeto backend desenvolvido com Spring Boot que oferece endpoints para criação e autenticação de usuários, utilizando criptografia de senhas com SHA-256 e JWT (JSON Web Token) para controle de acesso.
Conta com tratamento de exceções, validações, documentação Swagger e está pronto para rodar via Docker.


✅ Funcionalidades

  • 📥 Criar usuário
  • 🔐 Autenticar usuário
  • 🔒 Geração de token JWT
  • 🧾 Validação de dados via Bean Validation
  • 🧰 Criptografia de senha com SHA-256
  • 🛑 Tratamento de exceções customizadas
  • 📄 Documentação automática com Swagger
  • 🐳 Integração com Docker (Dockerfile + Docker Compose)

📦 Tecnologias Utilizadas

  • Java 17
  • Spring Boot
  • Spring Web
  • Spring Data JPA
  • Bean Validation
  • PostgreSQL
  • JWT (io.jsonwebtoken)
  • Docker e Docker Compose
  • Swagger (Springfox)
  • JPQL

📁 Estrutura do Projeto (resumida)

src
├── controllers
│   └── UsuariosController.java
├── dtos
│   ├── CriarUsuarioRequestDto.java
│   ├── CriarUsuarioResponseDto.java
│   ├── AutenticarUsuarioRequestDto.java
│   └── AutenticarUsuarioResponseDto.java
├── entities
│   └── Usuario.java
├── repositories
│   └── UsuarioRepository.java
├── service
│   └── UsuarioService.java
├── helpers
│   ├── CryptoHelper.java
│   └── JwtHelper.java
├── exception
│   ├── EmailJaCadastradoException.java
│   ├── AcessoNegadoException.java
│   └── ValidationExceptionHandler.java

🚀 Como Executar

Pré-requisitos

  • Java 17
  • Docker
  • Docker Compose

Passos

  1. Clone o repositório:

    git clone https://github.com/seu-usuario/seu-repo.git
    cd seu-repo
  2. Execute com Docker Compose:

    docker-compose up --build
  3. Acesse a documentação da API:

    http://localhost:8080/swagger-ui/index.html
    

📌 Endpoints Principais

🔹 Criar Usuário

POST /api/v1/usuarios/criar

Body:

{
  "nome": "Kaio Muniz",
  "email": "kaio@email.com",
  "senha": "123456"
}

🔹 Autenticar Usuário

POST /api/v1/usuarios/autenticar

Body:

{
  "email": "kaio@email.com",
  "senha": "123456"
}

Retorno:

{
  "id": 1,
  "nome": "Kaio Muniz",
  "email": "kaio@email.com",
  "accessToken": "jwt-token-gerado",
  "dataHoraAcesso": "2025-09-11T10:00:00",
  "dataHoraExpiracao": "2025-09-11T11:00:00"
}

❗ Tratamento de Erros

Tipo de Erro Status Mensagem
Dados inválidos 400 Lista de mensagens de validação
E-mail já cadastrado 409 "E-mail informado já está em uso"
Acesso negado (login errado) 401 "Acesso negado. Usuário ou senha inválido"

🧪 Testando com cURL

# Criar usuário
curl -X POST http://localhost:8080/api/v1/usuarios/criar -H "Content-Type: application/json" -d '{"nome":"Kaio", "email":"kaio@email.com", "senha":"123456"}'

# Autenticar usuário
curl -X POST http://localhost:8080/api/v1/usuarios/autenticar -H "Content-Type: application/json" -d '{"email":"kaio@email.com", "senha":"123456"}'

🔄 Histórico de Commits (principais etapas)

  • Projeto iniciado com Spring Web e DevTools
  • Configuração do application.properties com PostgreSQL
  • Criação do Dockerfile e docker-compose.yml
  • Configuração do Swagger
  • Entidade Usuario mapeada + JPQL personalizado
  • Criptografia de senha com CryptoHelper
  • Geração de tokens JWT com JwtHelper
  • UsuarioService implementada (criar e autenticar)
  • UsuariosController com endpoints
  • Exceções customizadas (EmailJaCadastradoException, AcessoNegadoException)
  • Handlers globais (ValidationExceptionHandler)
  • Testes iniciais de autenticação e criação de usuários

📚 Futuras Melhorias

  • Refresh Token
  • Logout com blacklist de tokens
  • Integração com serviço de e-mail
  • Autenticação via OAuth2 (Google, GitHub)
  • Testes unitários e integração

👨‍💻 Autor

Kaio Muniz
GitHub · LinkedIn

💬 Projeto criado para fins de estudo e prática com Spring Boot + JWT.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors