Skip to content

Batissta/node-auth-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔒 API Node.js + MongoDB: Autenticação Segura com JWT e Bcrypt

Uma API RESTful com autenticação de usuários, desenvolvida em Node.js e MongoDB. Projeto ideal para aprender os fundamentos de back-end, segurança e integração com banco de dados!
Todo o passo a passo de criação e desenvolvimento desse projeto se encontra em meu canal do youtube! Acesse: youtube.com/@Francinaldob

License: MIT

✍🏻 Autor



Olá, Sou Francinaldo Batista

📍 Localidade: Campina Grande, Paraíba
🎓 Formação: Sistemas de informação - UniFacisa, 4° Semestre

Me encontre no LinkedIn:

✨ Funcionalidades

  • Cadastro e autenticação de usuários (JWT)
  • Criptografia de senhas com Bcrypt
  • CRUD de recursos protegidos por token
  • Configuração segura usando variáveis de ambiente (Dotenv)
  • Integração profissional com MongoDB (Mongoose)

🛠️ Tecnologias

Biblioteca Finalidade
Express Servidor web e rotas
Mongoose Conexão e modelos do MongoDB
Nodemon Reinicialização automática (dev)
Dotenv Gerenciamento de variáveis de ambiente
Bcrypt Criptografia de senhas
JSON Web Token Autenticação stateless
UUID Geração de IDs únicos

🚀 Começando

Pré-requisitos

  • Node.js (v18+)
  • MongoDB (local ou Atlas)
  • Postman (para testar endpoints)

Instalação

# Clone o repositório
git clone [https://github.com/Batissta/node-auth-api.git](https://github.com/Batissta/node-auth-api.git)

# Instale as dependências
npm install

# Crie o arquivo .env (veja o exemplo abaixo)
cp .env.example .env

Configuração do Ambiente (.env)

PORT=3000
MONGODB_URI=sua_uri_mongodb

Executando a API

# Modo desenvolvimento (com Nodemon)
npm run dev

📡 Endpoints Principais

Autenticação

Método Endpoint Descrição Exemplo de Body
POST /usuarios Registra novo usuário { "apelido": "seuapelidomaiscriativo", "idade":19, "senha": "***" }
GET /usuarios Lista todos os usuários criados não é necessário

🔐 Boas Práticas de Segurança

  • Senhas nunca armazenadas em texto puro (hash com Bcrypt)
  • Tokens JWT com expiração e assinatura criptografada
  • Variáveis sensíveis isoladas em .env
  • IDs imutáveis gerados com UUID do node::crypto

🤝 Como Contribuir

Deixa uma estrela no repositório! Depois disso:

  1. Faça um fork do projeto
  2. Crie sua branch (git checkout -b feature/nova-funcionalidade)
  3. Commit suas mudanças (git commit -m "Add nova funcionalidade Co-authored-by: Batissta <francinaldofilho05@gmail.com>")
  4. Push para a branch (git push origin feature/nova-funcionalidade)
  5. Abra um Pull Request

📄 Licença

Este projeto está sob a licença MIT - veja o arquivo LICENSE para detalhes.


Feito por [Francinaldo Batista]
📺 Assista à série completa no YouTube: Youtube ->

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published