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

187
Vistas
El navegador no guarda la cookie de sesión del servidor de dominio cruzado

Tengo un problema con el navegador que no almacena la cookie de sesión enviada desde mi servidor. La aplicación web de mi cliente está alojada en Vercel y la aplicación de mi servidor está alojada en Heroku. Utilizo el pasaporte para iniciar sesión, que cuando tenga éxito, enviará una cookie de sesión al navegador. Esto funciona bien cuando se ejecuta la aplicación localmente (es decir, Cliente en localhost:3000 y servidor en localhost:5500). Sin embargo, cuando ambas aplicaciones se ejecutan en un alojamiento remoto, el navegador no almacena la cookie.

CORS funciona bien, ya que puedo obtener datos de mis API con éxito.

He intentado jugar con las opciones de sesión de cookies (por ejemplo, mismo sitio, seguro, solo http, dominio) sin suerte.

Supongo que la cookie podría estar almacenada en la URL del servidor. Esperaba que la opción de sesión de cookies 'dominio' hubiera solucionado esto, pero desafortunadamente no fue así.

Cliente:

https://github.com/liamliamliam/RateFlix-Cliente

https://rateflix.vercel.app/

Servidor:

https://github.com/liamliamliam/RateFlix-Server

Índice.mjs

 import 'dotenv/config'; import express from 'express'; import mongoose from 'mongoose'; import cookieSession from 'cookie-session'; import passport from 'passport'; import bodyParser from 'body-parser'; import cors from 'cors'; import './models/index.mjs'; import './services/passport.mjs'; import routes from './routes/index.mjs'; mongoose.connect(process.env.MONGODB_URI, console.log('Connected to MongoDB')); const app = express(); app.use( cors({ credentials: true, origin: ['https://rateflix.vercel.app', 'http://localhost:3000'] }) ); app.use(bodyParser.json()); app.use( cookieSession({ maxAge: 30 * 24 * 60 * 60 * 1000, keys: [process.env.COOKIE_KEY] }) ); app.use(passport.initialize()); app.use(passport.session()); routes(app); app.get('/api/env', (req, res) => res.json({ env: process.env.NODE_ENV })); const PORT = process.env.PORT || 5500; app.listen(PORT, console.log(`Running on port ${PORT}`));

services/passport.mjs (serializeUser, deserializeUser)

 passport.serializeUser((user, done) => { done(null, user.id); }); passport.deserializeUser((id, done) => { User.findById(id).then((user) => done(null, user)); });

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Dado que todo funciona bien y su cliente puede obtener datos de su backend sin ningún problema de CORS o lo que sea, entonces creo firmemente que la cookie se almacena bien. ¿Estás seguro de que estás viendo las cookies correctas? Deben almacenarse bajo la URL de su cliente web.

Asegúrese de que está revisando las cookies de esa URL y no localhost o cualquier otro.

about 4 years ago · Santiago Trujillo 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