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

255
Views
Obtenga el token del almacenamiento de la sesión antes de que la página se represente en React

Anteriormente estaba usando el almacenamiento local para almacenar los tokens para que puedan compartirse entre todas las pestañas, pero necesitaba un requisito para eliminar los tokens cuando el usuario cierra todas las pestañas o todo el navegador, así que cambié al almacenamiento de sesión para guardar el token y el detector de eventos de almacenamiento usado para compartirlo entre todas las pestañas, la funcionalidad funciona como se esperaba, pero pude ver un caso extremo aquí, cuando inicio sesión correctamente, abro una nueva pestaña e intento abrir la aplicación, redirige a la página de inicio de sesión porque cuando la página se muestra al principio no tendrá token en el almacenamiento de la sesión, después de unos segundos solo obtendremos el token de la pestaña de inicio de sesión.

Mi requisito es: ¿cómo puedo obtener los datos del almacenamiento de la sesión de la pestaña ya abierta y almacenarlos en la pestaña recién abierta antes de que se represente la página?

De acuerdo con el código, se redirige a la página de inicio de sesión ya que no tiene tokens durante el procesamiento de la página, pero después de eso, puedo ver los tokens en el almacenamiento de la sesión, entonces, ¿cómo puedo resolver este problema para que el procesamiento en la página sea el mismo? Puedo tener el token y redirigir a la página de inicio.

Aquí está el código,

Aplicación.js

 function App(){ return( //All other route codes <Route exact render={() => getUserToken() ? <Redirect to="/home"/> : <Redirect to="/login"/> } /> ) }

servicio.js

 export const getUserToken = () => { const token = sessionStorage.getItem("token"); return token }

apps.component.js

 // To trigger the storage event listener on every page render useEffect(() => { localStorage.setItem("REQUEST_TOKEN",Date.now().toString()); localStorage.removeItem("REQUEST_TOKEN") },[]) // To get the token from opened tab and store them in newly opened tab session storage useEffect(() => { window.addEventListener('storage', () => { const tokenCreds = sessionStorage.getItem("token") if(event.key === "REQUEST_TOKEN" && tokenCreds){ sessionStorage.setItem("token",event.newValue) } }) },[])

¿Hay alguna forma de obtener el token antes de que la nueva pestaña se muestre por completo para que pueda redirigir a la página de inicio?

¡¡¡Gracias por adelantado!!!

about 4 years ago · Juan Pablo Isaza
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!