Skip to content

📘 Este guia explica passo a passo como implementar rotas seguras de cadastro e autenticação em um projeto Node.js + Express usando bcrypt 🔐 para hashing de senhas e JSON Web Tokens (JWT)

License

Notifications You must be signed in to change notification settings

webtech-network/lab-cadastro-seguro-bcrypt-jwt-express

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Guia de Desenvolvimento — Rotas de Cadastro Seguro (bcrypt + JWT)

📘 Este guia explica passo a passo como implementar rotas seguras de cadastro e autenticação em um projeto Node.js + Express usando bcrypt 🔐 para hashing de senhas e JSON Web Tokens (JWT) 🪪 para autenticação baseada em token. Ele também traz dicas de segurança ⚠️, exemplos de middlewares ⚙️ e um exemplo de documentação OpenAPI/Swagger 📑.


🔎 Introdução – Por que segurança no back-end é importante?

🔒 Dados de usuários (como senhas, e-mails e informações pessoais) são alvo de ataques constantes. Sem proteção, qualquer invasor que tenha acesso ao banco de dados pode visualizar todas as senhas em texto puro.

✅ Boas práticas de segurança como hash de senhas e autenticação baseada em tokens são essenciais para proteger dados e evitar acessos não autorizados.


🧩 O que é o bcrypt e como será utilizado?

O bcrypt é uma biblioteca para gerar hashes seguros de senhas, tornando-as ilegíveis no banco de dados. Mas antes, é importante entender o conceito de hash: um processo unidirecional 🔁 que transforma uma senha em uma sequência única e irreversível.

✨ O bcrypt aplica o salt 🧂, que adiciona aleatoriedade ao hash, dificultando ataques como rainbow tables.

Utilizaremos:

 bcrypt.hash()      Criar o hash antes de salvar no banco
 bcrypt.genSalt()   Gerar um hash mais seguro
 bcrypt.compare()   Verificar se a senha informada corresponde ao hash armazenado

📖 Veja a explicação e implementação passo a passo do bcrypt em:


🪪 O que é JWT e como será utilizado?

O JWT (JSON Web Token) é um padrão para autenticação e troca segura de informações entre cliente e servidor 🤝.

Ele é composto por três partes:

  • 🏷️ Header — tipo do token e algoritmo usado
  • 📦 Payload — informações do usuário (id, e-mail, etc.)
  • ✍️ Signature — garante que o token não foi alterado

⚡ Após o login, o servidor gera um token JWT que será enviado pelo cliente em cada requisição, permitindo acesso a rotas protegidas sem precisar reenviar login e senha a cada vez.

Utilizaremos:

 jwt.sign()     Gerar o token
 jwt.verify()   Validar o token recebido do cliente
 jwt.decode()   Retornar o payload

📖 Veja a explicação e implementação passo a passo do JWT em:


🛠️ Projeto Prático

🎯 Objetivo

Criar rotas REST seguras para:

  • 👤 Cadastro de usuárioPOST /api/auth/register ➝ salvar usuário com senha hasheada
  • 🔑 Login / AutenticaçãoPOST /api/auth/login ➝ verificar credenciais e emitir JWT
  • 🔐 Rota protegida de exemploGET /api/profile ➝ exige token válido

📖 Veja a implementação completa em:


📚 Referências úteis


Contato

About

📘 Este guia explica passo a passo como implementar rotas seguras de cadastro e autenticação em um projeto Node.js + Express usando bcrypt 🔐 para hashing de senhas e JSON Web Tokens (JWT)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published