Sesiones en Node con express.js

En este post te mostraré un ejemplo sencillo y claro de cómo manejar la sesión o persistencia de sesión en Node.js usando el framework express.js

Vamos a usar el paquete express-session; y de este modo podremos acceder a los datos de sesión de la petición.

Gracias a la sesión podemos hacer varias cosas. Por ejemplo, restringir el acceso solo a usuarios logueados o llevar algo como un carrito de compras.

Instalando express-session

Comienza instalando la dependencia con:

npm install --save express-session

Espera a que se termine de instalar y después impórtalo:

Configurar uso de sesión

Ahora instancia tu app, y después de eso indica que usarás el middleware de sesión. Para ello necesitas configurar una clave secreta. Esta debe ser aleatoria y no deberías exponerla. Aquí la pongo solo como ejemplo:

Si tú quieres generar una clave aleatoria puedes usar uno de mis programas para generar clave hexadecimal aleatoria (descarga el exe).

Nota importante: la llamada a app.use() debe ser antes de que definas tus rutas.

Por ejemplo, lo siguiente es correcto:

Escribir datos en la sesión

Ahora en tus rutas de express configura todo normalmente. Supongamos que tienes la siguiente función para establecer datos en la sesión:

Como puedes ver definimos una función que configura esa ruta. El primer parámetro es la petición; justamente en session podemos establecer todos los datos. En la práctica yo he establecido incluso arreglos.

Leer datos de sesión

Ahora para leer podemos acceder igualmente a session y comprobar si hay un valor:

En resumen

Instalamos el paquete de express-session. Lo usamos al instanciar la app y lo configuramos con una clave secreta y aleatoria.

Para acceder a la sesión accedemos a req.session en donde req también es llamada petición o request. Así de simple; todo esto usando JavaScript del lado del cliente.

Nota importante: si estás usando fetch, por favor mira cómo configurarlo para que funcione con express.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario