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

189
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
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