Imagen del artículo Creando un servidor básico con NodeJS: Solicitud de validación y autenticación

5.9. Creando un servidor básico con NodeJS: Solicitud de validación y autenticación

Página 40 | Escuchar en audio

NodeJS es una poderosa plataforma para crear aplicaciones web. En esta sección, exploraremos cómo crear un servidor básico con NodeJS, centrándonos específicamente en validar y autenticar solicitudes. Esto es fundamental para garantizar la seguridad y la integridad de los datos de su aplicación.

Creando un servidor básico

Para comenzar, creemos un servidor HTTP básico con NodeJS. Primero, necesita instalar NodeJS y npm (Node Package Manager) en su computadora. Una vez instalado, puede crear un nuevo archivo JavaScript, por ejemplo server.js, y agregar el siguiente código:


const http = requerir('http');

servidor constante = http.createServer((req, res) => {
    res.writeHead(200, {'Tipo de contenido': 'texto/plain'});
    res.end('Hola mundo\n');
});

servidor.listen(3000, '127.0.0.1', () => {
    console.log('Servidor escuchando en el puerto 3000');
});

Este código crea un servidor HTTP que escucha en el puerto 3000 y responde con "Hola mundo" a todas las solicitudes. Para iniciar el servidor, puede ejecutar el comando node server.js en la terminal.

Solicitar validación

La validación de solicitudes es una parte crucial de cualquier aplicación web. Garantiza que los datos recibidos del cliente estén en el formato correcto y cumplan con todas las reglas comerciales. Para agregar validación de solicitudes a nuestro servidor, podemos usar una biblioteca llamada joi. Primero instálelo con el comando npm install joi y luego impórtelo a su archivo server.js:


const Joi = requerir('joi');

Ahora puede definir un esquema de validación para sus solicitudes. Por ejemplo, si está creando una API para un blog, es posible que desee validar solicitudes de publicaciones de blog como esta:


esquema constante = Joi.object({
    título: Joi.string().min(3).max(30).required(),
    contenido: Joi.string().min(5).required(),
});

Este esquema define que el título de la publicación del blog debe ser una cadena con un mínimo de 3 y un máximo de 30 caracteres, y el contenido de la publicación debe ser una cadena con un mínimo de 5 caracteres. Puede utilizar este esquema para validar solicitudes como esta:


validación constante = esquema.validar(req.body);
si (validación.error) {
    res.status(400).send(validation.error.details[0].message);
    devolver;
}

Autenticación de solicitudes

La autenticación es otra parte crucial de cualquier aplicación web. Garantiza que solo los usuarios autorizados puedan acceder a determinadas funciones. Para agregar autenticación a nuestro servidor, podemos usar una biblioteca llamada passport. Primero instálelo con el comando npm install passport y luego impórtelo a su archivo server.js:


pasaporte const = requerir('pasaporte');

Passport admite muchas estrategias de autenticación, como la autenticación local, OAuth y JWT. Para este ejemplo, usaremos autenticación local. Primero, necesitamos configurar el Pasaporte:


pasaporte.use (nueva estrategia local (
  función (nombre de usuario, contraseña, hecho) {
    User.findOne({ nombre de usuario: nombre de usuario }, función (err, usuario) {
      si (err) { retorno hecho (err); }
      if (!usuario) { return hecho(nulo, falso); }
      if (!user.verifyPassword(contraseña)) { return done(nulo, falso); }
      retorno hecho (nulo, usuario);
    });
  }
));

Este código configura Passport para utilizar la estrategia local. Intenta encontrar un usuario con el nombre de usuario proporcionado y verifica la contraseña. Si la contraseña es correcta, el usuario queda autenticado.

Para proteger una ruta con autenticación, puede utilizar el método authenticate de Passport:


app.post('/login', pasaporte.authenticate('local', { SuccessRedirect: '/',
                                                    failRedirect: '/login' }));

Este código protege la ruta /login con autenticación local. Si la autenticación tiene éxito, el usuario es redirigido a la ruta /. Si falla, el usuario es redirigido a la ruta /login.

En resumen, crear un servidor básico con NodeJS implica configurar el servidor, validar solicitudes y autenticar usuarios. La validación garantiza que los datos entrantes estén en el formato correcto, mientras que la autenticación garantiza que solo los usuarios autorizados puedan acceder a determinados recursos.

Ahora responde el ejercicio sobre el contenido:

¿Para qué sirve validar solicitudes en una aplicación web creada con NodeJS?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Crear un servidor básico con NodeJS: almacenar datos en bases de datos

Siguiente página del libro electrónico gratuito:

41Crear un servidor básico con NodeJS: almacenar datos en bases de datos

4 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.