Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

117
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda