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

248
Vistas
Solicitud HTTP de origen cruzado de Node Express con sesión de credenciales no guardada

Tengo un back-end Express realmente simple con sesión express y quiero hacer una solicitud de origen cruzado. Mi back-end está alojado en mi local: http://localhost:8080 y mi front-end está alojado en https://example.com (con SSL). Cuando realicé una solicitud GET de https://example.com a http://localhost:8080, la sesión no se guardó, pero cuando realicé una solicitud de http://localhost:8081 a http://localhost:8080 (con mi front-end implementado localmente sin SSL) funciona

¿Cómo puedo solucionar este problema con el front-end alojado en mi dominio?

back-end:

 var express = require('express'); var session = require('express-session'); var app = express(); app.use(function (req, res, next) { res.header('Access-Control-Allow-Credentials', true); res.header('Access-Control-Allow-Origin', req.headers.origin); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.header('Access-Control-Allow-Headers', 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept'); if ('OPTIONS' == req.method) { res.send(200); } else { next(); } }); app.use(session({secret: "thisismysecrctekeyfhrgfgrfrty84fwir767", cookie: {httpOnly: true} })); app.set("trust proxy", 1); app.disable('etag'); // Status app.get('/auth', function (req, res) { console.log(req.session) if(!req.session.key) { req.session.key = 2; req.session.save() res.send('<html>COOKIE just saved</html>'); } else res.send('<html>COOKIE saved</html>'); }); app.listen(8080, function () { console.log('Auth listening on port 8080!') });

Interfaz:

 <html> <script src='https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js'></script> <script type='text/javascript'> const instance = axios.create({withCredentials: true}); instance.get('http://localhost:8080/auth').then(function (response) {console.log(response.data);}) </script> </html>

Podemos ver una diferencia con los encabezados de las cookies, pero es el mismo código de front-end y el mismo back-end, solo cambia el host. Se pasa una cookie cuando el front-end está en local, no cuando está alojado con un dominio:

Información de red alojada en el front-end del dominio : Información de red alojada en el front-end del dominio

Front-end local de información de red : Front-end local de información de red

Estoy usando el proxy CloudFlare

¡Muchas gracias!

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