Autenticación
Last updated
Last updated
En este capitulo vamos a ver cómo almacenar las contraseñas de los usuarios, y cómo identificar las peticiones HTTP.
Recuerda que HTTP es un protocolo sin estado, lo que quiere decir que el servidor Web no mantiene un registro de quién está visitando una página.
Para almacenar las contraseñas en la base de datos se recomienda utilizar un paquete llamado para encriptar las contraseñas.
El primer paso es instalar el paquete con npm o Yarn. Por ejemplo con Yarn:
Para encriptar una contraseña utiliza el método hash
:
Para verificar si una contraseña es correcta utiliza el método compare
:
Para identificar las peticiones debemos guardar el id
del usuario en la sesión cuando este se autentique.
El método authenticate
del modelo User
sería el siguiente:
Por último, para identificar las peticiones HTTP creamos un middleware que verifica si la sesión tiene un userId
y carga al usuario:
Ahora, en todas las rutas que requieran autenticación podemos agregar este middleware. Por ejemplo:
El primer paso es asegurarte que hayas instalado y configurado la librería como se muestra en el capítulo de .
El siguiente paso es agregar el id
del usuario a la sesión. Por ejemplo, si tu ruta de autenticación es POST /login
y si estás utilizando :
no soporta aún async/await
así que en la línea 9 estamos envolviendo el código que hace la verificación en una promesa.
Para ver un ejemplo completo de autenticación de usuarios con Express.js y MongoDB te recomendamos ver la aplicación que se encuentra en .