Cómo crear un sistema de autenticación de usuario utilizando Node.js y MongoDB

Introducción

La autenticación de usuario es un componente crucial en cualquier aplicación web que requiera que los usuarios inicien sesión para acceder a contenido o funciones específicas. En este tutorial, te mostraremos cómo crear un sistema de autenticación de usuario utilizando Node.js y MongoDB, una de las bases de datos NoSQL más populares.

Paso 1: Configuración del entorno

Antes de comenzar, necesitas configurar tu entorno de desarrollo. Asegúrate de tener instalado Node.js y MongoDB en tu sistema. Para este tutorial, utilizaremos Express.js, una popular biblioteca de Node.js para crear aplicaciones web, y Mongoose, una biblioteca de MongoDB para interactuar con la base de datos.

Paso 2: Creación de la base de datos

En primer lugar, necesitas crear una base de datos de MongoDB para almacenar la información de usuario. Puedes hacer esto a través de la línea de comandos de MongoDB o utilizando un cliente gráfico como MongoDB Compass. Una vez que tengas tu base de datos creada, crea una colección llamada «usuarios».

Paso 3: Configuración del modelo de usuario

El siguiente paso es configurar el modelo de usuario utilizando Mongoose. El modelo define la estructura de los documentos que se almacenarán en la colección «usuarios». Aquí hay un ejemplo de cómo se puede hacer:

const mongoose = require(‘mongoose’);

const userSchema = new mongoose.Schema({
  nombre: { type: String, required: true },
  email: { type: String, required: true, unique: true },
  contraseña: { type: String, required: true },
});

const User = mongoose.model(‘User’, userSchema);

module.exports = User;

En este ejemplo, estamos definiendo un modelo de usuario con tres campos: nombre, email y contraseña. El campo email debe ser único para cada usuario, por lo que agregamos la opción «unique: true».

Paso 4: Configuración de las rutas de autenticación

Ahora necesitas configurar las rutas de autenticación en tu aplicación Express.js. Crea un archivo llamado «auth.js» y agrega las siguientes rutas:

const express = require(‘express’);
const router = express.Router();
const User = require(‘../models/user’);

router.post(‘/registro’, async (req, res) => {
  const { nombre, email, contraseña } = req.body;

  try {
    const user = new User({ nombre, email, contraseña });
    await user.save();
    res.send(‘Usuario creado correctamente’);
  } catch (err) {
    console.error(err);
    res.status(500).send(‘Error al crear usuario’);
  }
});

router.post(‘/inicio-sesion’, async (req, res) => {
  const { email, contraseña } = req.body;

  try {
    const user = await User.findOne({ email });
    if (!user) {
      return res.status(401).send(‘Credenciales inválidas’);
    }

    if (contraseña !== user.contraseña) {
      return res.status(401).send(‘Credenciales inválidas’);
    }

    res.send(‘Inicio de sesión exitoso’);
  } catch (err) {
    console.error(err);
    res.status(500).send(‘Error al iniciar sesión’);
  }
});

module.exports = router

Conclusión

Crear un sistema de autenticación de usuario utilizando Node.js y MongoDB no es tan difícil como parece. Con unos pocos pasos y un poco de conocimiento, puedes implementar una autenticación segura en tu aplicación web.

En este tutorial, hemos cubierto los pasos básicos para crear un sistema de autenticación de usuario, desde la configuración del entorno de desarrollo hasta la configuración de las rutas de autenticación y el modelo de usuario.

Recuerda que la seguridad es un aspecto crucial en cualquier aplicación web. Por lo tanto, asegúrate de investigar y aplicar las mejores prácticas de seguridad para proteger la información del usuario.

Deja un comentario