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

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

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 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