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

369
Vistas
Procesamiento condicional en vivo, cierre de sesión automático del usuario después de que Jwt expire

Cuando la fecha de caducidad es inferior a la hora o fecha actual, quiero que se cierre la sesión automáticamente. Sin embargo, parece que después de ingresar la fecha de vencimiento, debo actualizar antes de que se desconecte, y el peor de los casos es que haya pasado más de una hora, que es mi fecha de vencimiento típica ingresada, y cuando trato de agregar algo entrada, como tal vez agregar publicaciones, me alerta que el usuario debe iniciar sesión, lo que sé poner esa alerta si el usuario ya no ha iniciado sesión si el token ha caducado. ¿Hay alguna forma de resolver el problema o problema que tengo ahora mismo? Sé que la hay, pero mi falta de experiencia no me ayuda a encontrar más soluciones.

Código


 const initialState = { user: null, }; if (typeof window !== "undefined") { if (localStorage.getItem("jwtToken")) { const decodedToken = jwtDecode(localStorage.getItem("jwtToken")); if (decodedToken.exp * 1000 < Date.now()) { localStorage.removeItem("jwtToken"); window.location.href = "/login"; } else { initialState.user = decodedToken; } } }

Y en mi backend, simplemente ingresé 5000 milisegundos o 5 segundos para ver si mi aplicación se estaba ejecutando, y el token jwt se guarda en localStorage cada vez que inicio sesión. Este código funciona, pero deberá volver a cargar la página antes de que el método de cierre de sesión surta efecto.

Gracias por su ayuda, y por favor deje cualquier pregunta en la sección de comentarios a continuación.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Encontré una manera, pero no creo que sea una buena práctica, este es el código que hice:

Código

 function login(userData) { localStorage.setItem("jwtToken", userData.token); const decodedToken = jwtDecode(userData.token); dispatch({ type: "LOGIN", payload: userData, }); setTimeout(() => { localStorage.removeItem("initialTime"); logout(); router.push("/login"); toast.error("Session expired", shortToastConfig); }, decodedToken.exp * 1000 - Date.now()); }

Se cerrará automáticamente porque la fecha de caducidad es 1 hora después de que inicie sesión, y puede ajustar mi código si no es tan eficiente o la mejor práctica. Otro problema es que cuando actualizo la página en el medio antes de que caduque el token, no se cierra la sesión automáticamente, lo que implica que la capacidad de establecer el tiempo de espera no funciona, ¿quizás después de que se haya realizado la actualización?

Gracias por su ayuda y deje un comentario si necesita más código para probar esto.

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