Domina Cursor, el editor de código con IA que multiplica tu productividad como desarrollador.

0 de 35 lecciones completas (0%)

PROYECTO: TIENDA DE LIBROS ELECTRÓNICOS FULL STACK

Controladores de administración, y modelos de libro y transacción.

Introducción

Ahora que la parte de autenticación está funcionando correctamente, vamos a continuar con el lado administrativo del proyecto. Para esto, necesitaremos crear controladores y rutas específicas para administradores.

Configuración Inicial

Paso 1: Usando Cursor Composer

Como necesitamos crear varios archivos y carpetas, utilizaremos Cursor Composer. Le indicaremos que:

  • La autenticación está completa
  • Necesitamos avanzar hacia los controladores y rutas de administrador
  • Queremos implementar las características administrativas basadas en las especificaciones del archivo

Paso 2: Creación del Controlador de Administrador

El composer creará automáticamente:

  • Un nuevo controlador para administradores
  • Modificaciones en el modelo de usuarios para agregar el campo role (rol)
  • Rutas específicas para funciones administrativas

Funcionalidades del Controlador de Administrador

El controlador de administrador incluirá las siguientes funciones:

  • Obtener todos los usuarios – Para gestión de usuarios
  • Obtener todos los libros – Para gestión de inventario
  • Gestionar transacciones – Para control de préstamos y devoluciones

Configuración de Rutas y Middleware

Rutas de Administrador

Las rutas de administrador utilizan middleware de autenticación para asegurar que:

  1. El usuario esté autenticado (middleware auth)
  2. El usuario tenga permisos de administrador (middleware isAdmin)

Middleware de Verificación de Administrador

El middleware isAdmin verifica que el campo role del usuario sea igual a «admin».

Configuración de Endpoints

Endpoints Principales

Una vez configurado, tendremos acceso a los siguientes endpoints administrativos:

  • Gestión de usuarios:
    • GET /admin/users – Obtener todos los usuarios
    • PUT /admin/users/:id – Actualizar un usuario específico
  • Gestión de libros:
    • GET /admin/books – Obtener todos los libros
  • Otras funciones administrativas

Pruebas con Postman

Configuración de la Prueba

  1. Abre Postman y crea una nueva colección llamada «Admin»
  2. Crea una nueva petición: «Get All Users»
  3. Configura el método como GET
  4. Usa el endpoint correspondiente

Resolución de Errores Comunes

Error: «Cannot find module ‘book’»

Este error aparece porque aún no hemos implementado los modelos de libros y transacciones. Para solucionarlo:

  1. Solicita al composer que genere los modelos para Book y Transaction
  2. Reinicia el servidor después de crear los modelos

Error: «Route requires a function but got undefined»

Este error indica inconsistencias en la definición de rutas:

  1. Verifica que todos los controladores estén correctamente exportados
  2. Asegúrate de que las rutas apunten a las funciones correctas del controlador
  3. Revisa que no haya funciones callback innecesarias en los archivos de rutas

Error: «bcrypt not found»

Para instalar bcrypt:

bashnpm install bcrypt

Autenticación y Autorización

Configuración del Token

Para acceder a los endpoints de administrador:

  1. Primero, inicia sesión para obtener el token de autenticación
  2. En Postman, ve a la pestaña «Authorization»
  3. Selecciona «Bearer Token»
  4. Pega el token obtenido del login

Configuración de Roles en la Base de Datos

Si obtienes el error «Access denied. Admin rights required»:

  1. Accede a MongoDB
  2. Busca el usuario en la base de datos
  3. Agrega el campo role: "admin" al documento del usuario
  4. Guarda los cambios

Verificación Final

Una vez configurado correctamente el rol de administrador, deberías poder:

  • Acceder a todos los endpoints administrativos
  • Obtener la lista de usuarios
  • Gestionar el contenido de la aplicación

Conclusión

Con estos pasos, habrás implementado exitosamente un sistema de administración completo con autenticación y autorización adecuadas. El sistema ahora puede distinguir entre usuarios regulares y administradores, proporcionando acceso controlado a las funciones administrativas.

Resumen de privacidad
Logo JeroCuevas.com

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies de terceros

Esta web utiliza Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.