jherraizsoler/backend-auth
Proyecto backend Servidor PersonalHub
Backend de PersonalHubServidor funcion Autenticación con Node.js y MongoDB
Este proyecto es un backend de autenticación RESTful. Utiliza Node.js y Express para el servidor, y MongoDB con Mongoose para la base de datos. La autenticación se gestiona con JSON Web Tokens (JWT).
🛠️ Tecnologías
- Node.js: Entorno de ejecución
- Express: Framework web
- MongoDB: Base de datos NoSQL
- Mongoose: ODM (Object Data Modeling)
- JWT: JSON Web Tokens para autenticación
- Bcrypt: Hashing de contraseñas
- Visual Studio Code: IDE
✨ Características
- Registro de nuevos usuarios
- Inicio de sesión seguro
- Generación de tokens JWT
- Protección de rutas (middleware de autenticación)
- Hashing seguro de contraseñas
🚀 Requisitos
⚙️ Instalación y Configuración
-
Clona el repositorio:
git clone https://github.com/tu-usuario/backend-auth.git cd backend-auth -
Instala las dependencias:
npm install
-
Configura las variables de entorno:
- Crea un archivo
.enven la raíz del proyecto. - Añade la siguiente configuración:
PORT=3000 MONGO_URI=mongodb://localhost:27017/nombre-de-tu-base-de-datos JWT_SECRET=una_clave_secreta_super_segura
- Crea un archivo
-
Inicia el servidor:
npm start
📍 Endpoints de la API
POST /api/register- Registra un nuevo usuario.POST /api/login- Inicia sesión y devuelve un token JWT.GET /api/profile- Ruta protegida. Requiere un token JWT en el encabezadoAuthorization.
Ejemplos de Endpoints de la API con Postman
A continuación se muestran ejemplos de cómo interactuar con los endpoints utilizando la herramienta Postman.
POST /api/register
Registra un nuevo usuario con username, email y password.
Configuración en Postman:
- Método:
POST - URL:
http://localhost:3000/api/register - Encabezados (Headers):
Content-Type: application/json
- Cuerpo (Body):
- Selecciona
rawy el formatoJSON. - Pega el siguiente JSON:
- Selecciona
{
"username": "ejemplo-usuario",
"email": "usuario@example.com",
"password": "mi-contraseña-segura"
}POST /api/login
Autentica a un usuario y devuelve un JSON Web Token (JWT). Este token es necesario para acceder a las rutas protegidas.
Configuración en Postman:
- Método:
POST - URL:
http://localhost:3000/api/login - Encabezados (Headers):
Content-Type: application/json
- Cuerpo (Body):
- Selecciona
rawy el formatoJSON. - Pega el siguiente JSON:
- Selecciona
{
"email": "usuario@example.com",
"password": "mi-contraseña-segura"
}Respuesta de ejemplo:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxYzM1M2U5ZmE0YzgxMjMzYzU0N2UzNyIsImlhdCI6MTYyODk3NDMzOH0.tu-token-jwt-super-largo"
}GET /api/profile
Ruta protegida que devuelve la información del usuario autenticado. Requiere que el token JWT se envíe en el encabezado Authorization.
Configuración en Postman:
- Método:
GET - URL:
http://localhost:3000/api/profile - Encabezados (Headers):
- Clave:
Authorization - Valor:
Bearer tu-token-jwt-super-largo
- Clave:
Nota: Reemplaza tu-token-jwt-super-largo con el token real obtenido al iniciar sesión.
📂 Estructura del Proyecto
/backend-auth
|-- src/
| |-- controllers/
| |-- middleware/
| |-- models/
| |-- routes/
| |-- app.js
| |-- server.js
|-- .env
|-- .gitignore
|-- package.json
|-- README.md
📄 Licencia
Desde su creación en 2025 en adelante
©jherraizsoler tiene todos los derechos reservados.
El contenido de este repositorio es propiedad del autor. Queda prohibido su uso, copia, modificación o distribución sin autorización expresa.