¿Cómo configurar sesiones en ExpressJS?

Por user Jean Carlos Mariños Urquiaga
¿Cómo configurar sesiones en ExpressJS?

Las sesiones no pueden faltar en un servidor web. En este tutorial aprenderemos a configurar nuestro servidor de Express para que acepte sesiones.

Recuerden que cuando creamos un servidor con ExpressJS, este servidor viene sin ningún tipo de configuración y es ahí donde nosotros debemos ir agregando lo que creamos necesario. Las sesiones son inevitables para cualquier aplicación web, así que aprenderemos a configurarlas correctamente en un servidor en Express.

Requerimientos

Para poder configurar sesiones antes necesitamos configurar algo más: las cookies. Para esto utilizaremos un módulo llamado cookie-parser.

Cookie Parser

Cookie Parser es un módulo que podemos instalar vía npm y que nos permite configurar cookies dentro de nuestro servidor. Ahora tenemos que instalarlo.


$ npm install cookie-parser

Si desean que la dependencia se guarde en su package.json utilicen --save. Ahora vamos con la configuración de las cookies.


// server.js
'use strict'
const express = require('express'),
      cookieParser = require('cookie-parser');

const app = express();

app.use(cookieParser());
app.listen(8000);

app es nuestro servidor de express, para utilizar cookies solo debemos requerir el modulo y utilizarlo por el servidor de express app.use().

Ahora ya podemos configurar las sesiones, para las sesiones debemos utilizar un módulo llamado express-session.

Express Session

Como cualquier otro módulo de Node, es instable vía npm.


$ npm install express-session

Ya saben que el --save es opcional. Vayamos a la configuración.


// server.js
const session = require('express-session');

app.use(session({
    secret: 'keyboard cat',
    resave: false,
    saveUninitialized: true
}))

Recuerden que para eso deben tener su servidor de express, pueden revisar la configuración de las cookies. Las sesiones pueden recibir más de 3 parámetros, esto depende de lo que necesites, así que puedes revisar la documentación de express-session para los detalles de cada parámetro. 

Con esto ya tendrán disponible la variable req.session en sus controladores, y también un id único para la sesión de un usuario que podemos acceder mediante la variable  req.sessionID

Con esto ya tenemos nuestro servidor de express configurado con sesiones y cookies, recuerda que también tenemos cursos de Node.js y Fundamentos de Node.js donde explicamos esto y muchas otras cosas con más detalle.

user

Jean Carlos Mariños Urquiaga

Backend Developer | Python / Django - Javascript / Node.js