Implementar un middleware de autenticación es esencial para garantizar la seguridad de una aplicación. Este middleware evita que se accedan a funciones sensibles sin los permisos adecuados. Se centra en procesar solicitudes y verificar el acceso antes de permitir el paso a cualquier lógica de la aplicación. Así, se minimiza el riesgo en el caso de un fallo de seguridad.
¿Cómo se crea un archivo para el middleware?
Para comenzar, es útil crear un nuevo archivo de JavaScript donde se escribirá el middleware. Este archivo podría llamarse secure.js y se alojaría en un directorio designado para los archivos de servicio. La función principal del archivo será exportar un middleware que valide las acciones permitidas.
// secure.jsmodule.exports=function(action){returnfunctionmiddleware(req, res, next){switch(action){case'edit':if(req.user.canEdit){next();}else{ res.status(403).send("No tienes permiso para editar.");}break;default:next();}};};
¿Cómo definir la función central del middleware?
La función será capaz de manejar diferentes acciones basadas en el input. Utilizando un switch, podemos determinar si un usuario está permitido para realizar una acción específica. Aquí es donde se define la lógica de autenticación.
functionsecureAction(action){return(req, res, next)=>{switch(action){case'edit':console.log("Acción de Editar ejecutada");break;// Otros casos para otras accionesdefault:next();}};}
¿Qué necesita para manejar el token de identificación?
Para la autenticación basada en tokens, es típico manipular tokens JWT (JSON Web Tokens). Primero se requiere decodificar el token recibido en las solicitudes para verificar su validez.
¿Cómo se configura la variable de entorno secreta?
Al gestionar la seguridad, es crucial configurar variables de entorno que gestionen datos sensibles. El secreto JWT es uno de estos datos y debería configurarse en un archivo de configuración.
En este punto, se puede utilizar esta configuración para verificar los tokens y proporcionar un entorno seguro en la aplicación.
¿Por qué es importante verificar las autorizaciones?
La verificación de credenciales y autorizaciones es fundamental para evitar accesos no autorizados a recursos críticos. La implementación del middleware y la correcta gestión del token de autenticación son técnicas cruciales para proteger las aplicaciones web. Tener un sistema robusto de autenticación no solo mejora la seguridad, sino que también proporciona confianza a los usuarios.
En la siguiente sección, se continuará explorando cómo manejar correctamente los tokens y utilizar estas configuraciones para asegurar aún más las rutas de la aplicación.
Ojito Ojito... en el video logró hacer el PUT porque el lo creo por SU propia cuenta cuando nos dejó el reto de que lo crearamos nosotros .....
REVISA LA DOCUMENTACION DE LA CLASE PARA VER COMO LO HIZO
EN => API/COMPONENT/USER/NETWORK
Gracias por la aclaratoria!!
Realmente, si yo no me he perdido, el PUT no lo tiene hecho, solo tiene definido el path en el network y cuando edita, realmente está volviendo a meter otro usuario Paco pero con diferente id.
En principio debería definirse otro endpoint ('/:id', update) con su función en controller y también en store. Hacerlo donde mismo que el post puede llegar a ser confuso.
Funciones anónimas complican el debug, funciones con nombres facilitan la vida. Sabias palabras del prof.. :)
no lo habia pensado, tiene sentido
Es más fácil hacer revisión de fallos cuando las funciones tienen nombres, que cuando son fuciones anónimas.
Se me hace muy rebuscada la manera de programar que tiene el profesor.
Hasta este punto del curso me parece mucho mejor explicado los mismos temas y más sencillo de entender en los cursos de Nicolas Molina.
No tengo muy claro como el middelware de secure.js, entra en ejecución, no veo que en ningun momento que lo llamen o lo importen, alguien me puede decir; ¿como entra a ejecutarse este archivo si nada lo esta llamando?
en la siguiente clase se soluciona :)
Yo tengo la misma duda, hay unas funciones que se ejecutan y todavía no veo en donde se llaman
de donde viene la función next() ? se que ejecuta la siguiente función (creo..) pero no explico o no me escuche de donde, es propia de Node ?
Hola! Básicamente le dice al programa, "busca la siguiente ruta, esta no es" Stack Overflow. Te recomiendo el Curso de Express.js :D
Justo a eso voy el siguiente curso jaja gracias por la recomendación. :)
Una pregunta, ¿Porque es preferible usar arrow functions sobre functions o viceversa?
arrow functions es más moderno, además arrow functions NO sobreescribe el "this", por lo que puedes ahorrarte muchos problemas ^^
Las arrow functions tienen ciertas particularidades a tener en cuenta
Todo el contenido es muy bueno, así como la explicación pero la estructura y el nombre que se le ponen a los archivos me parece confusa.
Sí yo quiero buscar un middleware de autenticación, jamas se me ocurriria irlo a buscar en user/secure.
Yo más bien lo pondría en middlewares/auth.middleware.js
middleware = intermediario
¿Algún documento para leer sobre generar API Key?
Hola!
Que tal este?
Saludos!!
Que forma de explicar mas enredada, como sugerencia validen que las personas que enseñen primero hagan un curso de pedagogía o metodologías de enseñanza. Porque de nada sirve tener un experto al frente que no sepa transmitir la información.
Aqui tambien se abarca el tema de autenticacion con tokens en los headers:
Dado que en el videos se aborda el tema de los middleware, acá una referencia sobre el tema:
que es Bearer?????????
gracias alison!!!
Bearer (portador)
La autenticación de portador (también llamada autenticación de token ) es un esquema de autenticación HTTP que involucra tokens de seguridad llamados tokens de portador. El nombre “Autenticación de portador” puede entenderse como “dar acceso al portador de este token”. El token portador es una cadena críptica, generalmente generada por el servidor en respuesta a una solicitud de inicio de sesión. El cliente debe enviar este token en el encabezado “Authorization” al realizar solicitudes a recursos protegidos
a alguien más le pasa que cuando le hablan de middleware no tiene idea de que es lo que hablan ?
Alguien me lo podría explicar en palabras muy simples? :(
una palabra middleware = intermediario
Por si quieres una definición más completa, ¿Qué es middleware?
Es la definición de Red Hat ;)