Skip to content

ElderFausto/auth-users

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Ā 

History

9 Commits
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 
Ā 

Repository files navigation

API de Autenticação de UsuÔrios com Spring Boot

Java Spring Boot Maven License: MIT

API RESTful para cadastro e login de usuÔrios, construída com Spring Boot 3, Spring Security e autenticação via JSON Web Tokens (JWT).

Tecnologias Utilizadas

  • Java 21
  • Spring Boot 3
  • Spring Web
  • Spring Data JPA
  • Spring Security
  • Lombok
  • PostgreSQL
  • Maven
  • JJWT

Como Gerar o Projeto

O projeto foi gerado usando o Spring Initializr com as seguintes dependĆŖncias:

  • Spring Web
  • Spring Data JPA
  • Spring Security
  • Validation
  • PostgreSQL Driver
  • Lombok
  • Spring Boot DevTools

Como Rodar a Aplicação

  1. Pré-requisito: Tenha o Java 17 (ou superior) e o Maven instalados. Tenha uma instância do PostgreSQL rodando.
  2. Crie um banco de dados no PostgreSQL (ex: CREATE DATABASE auth_db;).
  3. Configure suas credenciais do banco no arquivo src/main/resources/application.properties.
  4. Abra o projeto em sua IDE (ex: IntelliJ IDEA).
  5. Execute a classe principal UsersApplication.java.
  6. O servidor estarĆ” rodando em http://localhost:8080.

Endpoints da API

Autenticação

  • POST /api/auth/register

    • Cadastra um novo usuĆ”rio.
    • Body: { "username": "user", "email": "user@example.com", "password": "password123" }
  • POST /api/auth/login

    • Autentica um usuĆ”rio e retorna um token JWT.
    • Body: { "username": "user", "password": "password123" }
    • Retorno: { "token": "seu-jwt-token" }

UsuƔrios (Protegido)

  • GET /api/users/me
    • Retorna o perfil do usuĆ”rio atualmente autenticado.
    • Header Obrigatório: Authorization: Bearer <seu-jwt-token>

Exemplo com cURL

# Registrar
curl -X POST http://localhost:8080/api/auth/register -H "Content-Type: application/json" -d '{"username": "testuser", "email": "test@user.com", "password": "password"}'

# Login e extrair token
TOKEN=$(curl -s -X POST http://localhost:8080/api/auth/login -H "Content-Type: application/json" -d '{"username": "testuser", "password": "password"}' | jq -r .token)
echo "Token: $TOKEN"

# Acessar rota protegida
curl -X GET http://localhost:8080/api/users/me -H "Authorization: Bearer $TOKEN"

About

šŸ” REST API for user authentication built with Spring Boot, Spring Security & JWT. Connects to a PostgreSQL database.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages