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

197
Vistas
Reaccionar y expresar Autenticación verificando la autenticación en cada solicitud

Así que estoy haciendo una aplicación con React en el front-end y express en el back-end. La forma en que funciona mi aplicación en el front-end es que tengo dos aplicaciones: una aplicación autenticada y una aplicación no autenticada.

 const {authenticated} = useAuth().authData; return authenticated ? <AuthenticatedApp/> : <UnauthenticatedApp/>

Aquí, la variable autenticada proviene de un AuthContext al que puedo acceder globalmente a través de la aplicación. Lo que hace es almacenar el valor autenticado en localStorage. En lo que estoy atascado es cuándo/dónde configuro este valor autenticado. En mi backend express tengo un middleware que verifica si la sesión está autenticada (el usuario ha iniciado sesión).

 app.use((req, res, next) => { console.log('Checking session...'); if (!req.session.authenticated) { const err = new Error('Not authenticated!'); err.status = 401; return next(err); } else { return next(); }

});

Originalmente tenía una función llamada checkSession que haría una llamada a express para verificar si la sesión está autenticada. Esto ocurriría como una solicitud separada junto con cada solicitud. Veo muchos gastos generales en esto, así que estoy buscando una alternativa. Lo que estoy considerando hacer ahora es establecer un valor de encabezado en cada respuesta de Express así.

 app.use((req, res, next) => { console.log('Checking session...'); if (!req.session.authenticated) { const err = new Error('Not authenticated!'); err.status = 401; return next(err); } else { res.setHeader('Authenticated', true); return next(); }

});

Y luego accedería a esto en cada respuesta en el front-end y haría lo siguiente.

 setAuthenticated(res.header.authenticated)

¿Existe una forma más sencilla de hacerlo sin realizar dos llamadas a la API para cada solicitud o sin tener que escribir setAuthenticated() en cada respuesta del backend? Lo que esencialmente estoy tratando de arreglar es que el usuario cambie manualmente el valor localStorage para autenticar algo que no sea nulo.

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

0

Puede actualizar el estado "autenticado" en el almacenamiento local solo una vez cuando se carga la aplicación, o incluso cuando inicia la sesión del usuario. Si alguien actualiza ese estado en el almacenamiento local, debería ser "su problema". Por supuesto, su backend debe autenticar por separado las solicitudes entrantes, en función de tokens o cookies, no el valor del almacenamiento local. Si el usuario realiza una solicitud a un punto final seguro, sin credenciales de autenticación válidas (token de acceso o cookie), el backend debe responder con una respuesta 401. El front-end puede capturar respuestas 401 de su backend y luego actualizar el estado "autenticado" en el almacenamiento local y, como resultado, renderizar la aplicación no autenticada.

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