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.
Comienza instalando la dependencia con:
npm install --save express-session
Espera a que se termine de instalar y después impórtalo:
const session = require("express-session");
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:
app.use(session({
secret: "987f4bd6d4315c20b2ec70a46ae846d19d0ce563450c02c5b1bc71d5d580060b",
saveUninitialized: true,
resave: true,
}));
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:
// Primero usar la sesión
app.use(session({
// Se recomienda cambiar en cada entorno
// https://parzibyte.me/blog/2020/06/02/sesiones-node-express-js/#Configurar_uso_de_sesion
secret: "123",
saveUninitialized: true,
resave: true,
cookie:{
maxAge: 60000,
}
}));
// Y después definir las rutas!
app.use('/', indexRouter);
app.use('/productos', productosRouter);
app.use('/usuarios', usuariosRouter);
Ahora en tus rutas de express configura todo normalmente. Supongamos que tienes la siguiente función para establecer datos en la sesión:
app.get("/guardar_en_sesión", (req, res) => {
req.session.nombre = "Luis";
req.session.edad = 23;
req.session.web = "https://parzibyte.me";
});
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.
Ahora para leer podemos acceder igualmente a session
y comprobar si hay un valor:
app.get("/ruta_solo_logueados", (req, res) => {
// Si, por ejemplo, no hay nombre
if(!req.session.nombre){
res.end("No tienes permiso. Fuera de aquí");
}else{
// Ok, el usuario tiene permiso
res.end("Hola " + req.session.nombre);
}
});
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.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.