Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

116
Vistas
Datos perdidos almacenados en problema de almacenamiento local

Tengo un token almacenado en localStorage , también tengo un método que verifica si el token es correcto o no, como puedes ver en este código:

 let token = localStorage.getItem('token'); console.log(token); if ( !token ) { return null; } const parts = token.split('.'); if ( parts.length !== 3 ) { throw new Error('error'); } ....

si el token no está undefined , devolveré nulo, de lo contrario, continúe con la verificación.

Hay dos problemas que no puedo entender:

  • ¿Por qué perdí el token de localStorage cuando actualicé la página?
  • ¿Por qué if ( !token ) devuelve falso cuando el token no está undefined , el primer console.log devuelve indefinido, pero mi método continúa const parts = token.split('.'); .
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El almacenamiento local funciona solo con cadenas.

MDN: Ventana.almacenamiento local

Las claves y los valores almacenados con localStorage siempre están en formato UTF-16 DOMString, que utiliza dos bytes por carácter. Al igual que con los objetos, las claves enteras se convierten automáticamente en cadenas.

https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

Entonces, cada valor se serializa como una cadena.

 localStorage.setItem('token', undefined); let token = localStorage.getItem('token'); console.log(token); console.log(typeof(token));

Imprime en la consola:

 undefined string

Conclusiones :

  1. No almacene null e undefined en Almacenamiento local.
  2. Al validar el valor del almacenamiento local, trátelo siempre como un valor de string .

Notas:

  1. La validación debería devolver false de forma predeterminada. Y solo en caso de éxito debería devolver true .
  2. No debe almacenar ningún token en el almacenamiento local, no es seguro.
  3. No debe validar nada en un cliente, ya que la lógica de validación se puede manipular fácilmente.
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda