¿Cómo saber si un usuario ha iniciado sesión?

| Última modificación: 14 de mayo de 2024 | Tiempo de Lectura: 2 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

La identificación y reconocimiento de un usuario es fundamental a la hora de determinar muchas de las acciones de una aplicación web. Por ello, en este post te enseñaremos cómo saber si un usuario ha iniciado sesión a partir del concepto de JWT.

¿Cómo saber si un usuario ha iniciado sesión?

Saber si un usuario ha iniciado sesión es importante en un proyecto web porque determinará la presencia de algunos elementos de la interfaz. El ejemplo más básico es que, si un usuario ha hecho inicio de sesión, el botón de login pasará a un botón de logout. Otro ejemplo serían las interacciones que solo pueden ejecutar usuarios dentro de la aplicación, como la creación de contenido (representada por un botón de creación).

De manera teórica, para saber si un usuario ha iniciado sesión o no podremos revisar la existencia de un JWT. Es decir, un JSON Web Token que solo se obtiene como respuesta a la validación de las credenciales de un usuario en el inicio de sesión. Normalmente, para usar el JWT y ejecutar las distintas acciones de un usuario registrado debemos guardar JWT en localstorage.

Para conocer más sobre la interacción de JavaScript con este segmento de almacenamiento, te recomendamos leer el artículo window.localStorage de la MDN.

Siguiendo la lógica anterior, para saber si un usuario ha iniciado sesión debemos revisar el Local Storage de nuestra aplicación en búsqueda del JWT del usuario. Existen formas manuales de hacer este procedimiento. De hecho, en nuestro post sobre la persistencia de datos en el navegador te explicamos cómo consultar este almacenamiento desde el inspector web y hacer pruebas con él.

Ahora, podríamos pensar que esta manera de reconocer al usuario es muy fácil de manipular; un usuario mal intencionado podría saber que así funciona nuestra aplicación y crear un key:value en el Local Storage para habilitar el botón de creación de contenido. Sin embargo, esto solo le permitirá llegar a rellenar un formulario de contenido. Una vez presione el botón real de creación, el JWT falso que ha creado irá en la petición a la API, quien reconocerá que este JWT no es válido. De este modo, un JSON Web Token es una herramienta muy útil y segura para transmitir datos en la web.

Otra duda que podríamos tener a la hora de saber si un usuario ha iniciado sesión es revisar la validez de su JWT. En la mayoría de los casos, estos expiran a las 24 horas de creación. Entonces, podríamos programar una lógica que revise cada vez que se abre la aplicación si hay un JWT en el Local Storage y si este ha expirado o no. En el caso de que haya expirado, se borrará de este espacio de almacenamiento.

Ahora que conoces el proceso para saber si un usuario ha iniciado sesión, ¡te invitamos a seguir aprendiendo sobre el mundo del desarrollo web! Por ello, te recomendamos nuestro Desarrollo Web Full Stack Bootcamp, un espacio de formación intensiva donde aprenderás todo lo necesario para convertirte en un experto de este mundo. ¡No te lo pierdas y solicita información ahora!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado