Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

252
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda