No guardis JWTs a localStorage: arquitectura d'autenticació segura amb Express i Redis

Protegeix les teves apps: no guardis JWTs a localStorage. Implementa doble token amb Express, cookies HttpOnly i Redis per a revocació instantània. Mitiga XSS i CSRF.

miércoles, 8 de julio de 2026 • 3 min de lectura • Equip Q2BSTUDIO

Com implementar sessions revocables amb doble token

En l'ecosistema actual del desenvolupament backend amb Node.js i Express, l'autenticació mitjançant tokens JWT s'ha convertit en un estàndard. No obstant això, guardar aquests tokens al localStorage del navegador és una pràctica que exposa l'aplicació a vulnerabilitats greus de Cross-Site Scripting (XSS). A Q2BSTUDIO, entenem que la ciberseguretat és un pilar fonamental en qualsevol projecte, i per això recomanem una arquitectura de doble token que combini emmagatzematge en RAM, cookies HttpOnly amb abast restringit i Redis per a la revocació de sessions. Aquest enfocament, similar al que implementem en els nostres desenvolupaments d'aplicacions a mida, eleva la seguretat a nivell empresarial sense sacrificar l'experiència d'usuari.

El sistema es basa en dos tokens: el token d'accés (Access Token), amb una vida curta de 15 minuts, que s'emmagatzema exclusivament en una variable en memòria RAM del costat del frontend. Així, si un atacant aconsegueix executar JavaScript maliciós, no trobarà el token a l'emmagatzematge persistent. El token de refresc (Refresh Token), amb una validesa de 7 dies, s'envia al navegador com una cookie HttpOnly, inaccessible per a JavaScript, i amb un path estrictament limitat al endpoint de renovació. Aquesta restricció evita que la cookie s'enviï en cada petició, mitigant a més atacs CSRF mitjançant la directiva sameSite: 'lax'. La configuració d'aquests paràmetres és crítica i forma part de les bones pràctiques que apliquem en els nostres projectes de ciberseguretat.

Un dels problemes dels JWT sense estat és la impossibilitat de revocar-los instantàniament. Per resoldre-ho integrem Redis com a gestor de sessions d'alta velocitat. En iniciar sessió, emmagatzemem el Refresh Token a Redis associat a l'ID de l'usuari, permetent forçar sessions d'un sol dispositiu. Quan l'usuari intenta renovar el seu token d'accés, el backend verifica que el token emmagatzemat a Redis coincideixi amb el presentat; en cas contrari, es denega la petició. En tancar sessió, eliminem l'entrada a Redis i netegem la cookie, garantint una revocació immediata fins i tot si el token va ser compromès. Aquest patró és part de les nostres solucions de serveis cloud AWS i Azure, on la consistència i la seguretat són clau.

L'arquitectura descrita requereix major infraestructura que un simple setItem, però el benefici en termes de protecció contra XSS i CSRF és enorme. A Q2BSTUDIO apliquem aquest tipus de dissenys en els nostres desenvolupaments de programari a mida, combinant-los amb tecnologies d'intel·ligència artificial i agents IA per automatitzar processos d'autenticació i monitoratge. A més, integrem dashboards de Power BI per visualitzar mètriques de seguretat i sessions actives, i utilitzem serveis intel·ligència de negoci per analitzar patrons d'accés. El nostre equip també implementa ia per a empreses que reforcen la detecció d'anomalies en temps real. Tot això s'emmarca en una estratègia global de ciberseguretat que protegeix tant el frontend com el backend.

Si estàs desenvolupant una aplicació amb Express i busques una autenticació robusta, no dubtis a contactar a Q2BSTUDIO. La nostra experiència en aplicacions a mida i en la integració de serveis cloud ens permet oferir solucions a mida que compleixen amb els més alts estàndards de seguretat. Recorda: guardar JWTs a localStorage és un risc evitable; una arquitectura de doble token amb Redis és la resposta professional.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.