ExpressJS es un marco de aplicación web Node.js mínimo y flexible que proporciona un sólido conjunto de funciones para aplicaciones web y móviles. Una de las características más poderosas de ExpressJS es su capacidad para gestionar rutas. En este capítulo, exploraremos cómo trabajar con rutas en ExpressJS, con un enfoque especial en trabajar con autorización en rutas.
Las rutas son un aspecto esencial de cualquier aplicación web. Determinan cómo responde una aplicación a la solicitud de un cliente de una dirección específica. En ExpressJS, las rutas se definen adjuntando controladores de ruta a las instancias de la aplicación.
Para empezar, primero comprendamos cómo definir una ruta básica. Supongamos que queremos crear una ruta a la página de inicio de nuestra aplicación. Lo haríamos así:
aplicación.get('/', función(solicitud, res) { res.send('¡Bienvenido a la página de inicio!'); });
Aquí, 'app' es una instancia de express, 'get' es el método HTTP con el que estamos tratando, '/' es la ruta de la ruta y la función es el controlador de ruta que se ejecuta cuando la ruta coincide.
Ahora hablemos de autorización. La autorización es un proceso que verifica que el usuario tiene permiso para realizar la acción solicitada. En el contexto de las rutas, la autorización se puede utilizar para restringir el acceso a determinadas rutas en función de la autenticación del usuario.
Para implementar la autorización en nuestras rutas, podemos usar middleware. El middleware es una función que tiene acceso al objeto de solicitud (req), al objeto de respuesta (res) y a la siguiente función de middleware en el ciclo de solicitud-respuesta de la aplicación.
Podemos definir un middleware de autorización de la siguiente manera:
función verificarAutorización(solicitud, res, siguiente) { si (req.usuario.isAuthorized) { próximo(); } demás { res.status(403).send('Acceso denegado'); } }
Aquí, 'verificaAuthorizacao' es el middleware que estamos definiendo. Verifica que el usuario esté autorizado marcando la propiedad 'estaAuthorizado' del objeto 'usuario' en la solicitud. Si el usuario está autorizado, llama a la siguiente función de middleware. De lo contrario, envía una respuesta con el estado 403 y un mensaje de "Acceso denegado".
Ahora podemos utilizar este middleware en nuestras rutas para restringir el acceso. Por ejemplo, si quisiéramos restringir el acceso a la ruta '/secret', lo haríamos así:
app.get('/secret', verificarAutorización, función(req, res) { res.send('¡Bienvenido a la página secreta!'); });
Aquí, 'checkAuthorization' se pasa como segundo argumento a 'app.get'. Esto significa que se ejecutará antes del controlador de ruta siempre que se acceda a la ruta '/secret'. Si el usuario no está autorizado recibirá una respuesta con el estado 403 y el mensaje 'Acceso denegado'. Si el usuario está autorizado, el controlador de ruta se ejecutará y el usuario verá el mensaje "¡Bienvenido a la página secreta!".
En resumen, las rutas son un aspecto esencial del desarrollo de aplicaciones web con ExpressJS. Le permiten definir cómo debe responder su aplicación a diferentes solicitudes. La autorización es un aspecto importante de las rutas que le permite restringir el acceso en función de la autenticación del usuario. Al utilizar middleware, puede implementar fácilmente la autorización en sus rutas.