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

243
Views
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
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!