Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

381
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!