Dónde guardas un JWT en el navegador cambia tu riesgo de XSS y CSRF.
localStorage: fácil de usar pero legible por JavaScript, así que es vulnerable a XSS — un script inyectado puede robar el token.
Cookie HttpOnly: JavaScript no puede leerla, así que resiste XSS, pero se envía automáticamente, por lo que necesitas defensa CSRF (SameSite / token CSRF).
Recomendado: guarda el token de refresco en una cookie HttpOnly, Secure y SameSite, y el token de acceso brevemente en memoria (una variable).
Dondequiera que lo guardes, HTTPS es obligatorio; mantén vidas cortas y nunca pongas datos sensibles en la carga útil.
Prueba a decodificar un token tú mismoSolo pega y la cabecera, la carga útil y las reclamaciones se despliegan al instante.