Autenticación y Autorización en Node.js para eCommerce

Clase 3 de 20Curso de Backend con Node.js: Autenticación con Passport.js y JWT

Resumen

¿Cómo comenzar con el proyecto base en Node.js?

Inicia tu viaje en el desarrollo backend con Node.js partiendo de una estructura sólida. En el curso anteriormente mencionado, trabajamos en el desarrollo de un eCommerce, integrando distintas capas como controladores, conexiones a bases de datos con PostgreSQL a través de Sequelize, y estructuras para orden de compra y productos. Ahora, nos enfocamos en implementar la capa de autenticación y autorización.

¿Cómo clonar el proyecto y preparar el entorno?

Para facilitar el avance, clona el código base del repositorio usando la terminal:

git clone https://github.com/platzicurso/nogs-auth.git magiestore-auth

Esta acción te permite descargar todo el proyecto preparado hasta el paso anterior en el curso de backend.

  1. Instala las dependencias: Ejecuta npm install dentro de la carpeta clonada.
  2. Configura las variables de entorno: Crea un archivo .env donde coloques datos críticos como la URL de conexión a la base de datos, el puerto y el entorno.
  3. Prepara la base de datos: Antes de proceder, asegúrate de tener Docker corriendo los contenedores necesarios:
docker-compose up -d postgres
docker-compose up -d pgadmin

¿Cómo ejecutar la migración inicial?

Las migraciones son esenciales para preparar la estructura de la base de datos. Verifica que tu contenedor de PostgreSQL esté correctamente levantado y que la carpeta de volumen (donde Docker guarda datos persistentes) esté creada.

Corre la migración inicial ejecutando:

npm run migrations:run

Este comando aplicará todos los cambios necesarios a la base de datos, creando tablas y configuraciones iniciales. En caso de error con las variables de entorno, asegúrate de que todas coincidan correctamente con las configuraciones del Docker.

¿Cómo gestionar ambientes con Insomnia?

Insomnia te permite realizar pruebas de la API, cambiando entre entornos (producción y desarrollo) de manera sencilla.

  1. Crea ambientes: Define los ambientes mediante variables que se pueden configurar en Insomnia.

  2. Configura las URLs del API: Inserta URLs según el ambiente correspondiente:

    • Producción puede ser https://api.miapp.com.
    • Desarrollo configúralo como http://localhost:3000.
  3. Selecciona el ambiente actual: Cambia entre dev y prod según necesites, asegurando que estás apuntando al servidor correcto.

Beneficios de esta configuración

  • Flexibilidad: Permite modificar configuraciones sin necesidad de cambiar cada endpoint manualmente.
  • Seguridad: Antes de realizar cambios a producción, puedes asegurarte de que todo funcione correctamente en desarrollo.

¿Qué hacer ahora?

Con el proyecto corriendo y la API lista para el manejo de peticiones, el próximo paso es implementar una capa de autenticación. Empezaremos creando un middleware para verificar la API key y asegurar que las solicitudes solo sean procesadas si son legítimas.

Este proceso no solo resguardará la aplicación, sino que sienta las bases para el control de acceso a tu API. ¡Adelante, y sigue explorando el potencial del desarrollo backend con Node.js!