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

180
Views
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 answers
Answer question

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 Report
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!