Parece que no puedo configurar cookies con bandera segura. Funcionó en todos mis otros proyectos pero no con este. Revisé muchas otras guías, pero nada parece funcionar para esta configuración específica.
Tenga en cuenta que estoy usando puntos finales Graphql y Rest, y la configuración de cookies no funciona en ninguno de ellos.
Servidor index.tsx
const app = express(); if (process.env.NODE_ENV === 'production') { app.set('trust proxy', 1); } app.use( session({ name: 'uId', store: new RedisStore({ client: redisClient, disableTouch: true }), saveUninitialized: false, secret: process.env.SESSION_SECRET as string, resave: false, proxy: process.env.NODE_ENV === 'production', cookie: { maxAge: 1000 * 60 * 60 * 24 * 90, //3 months secure: process.env.NODE_ENV === 'production', httpOnly: process.env.NODE_ENV === 'production', sameSite: 'lax', //same with "none" }, }), ); const server = new ApolloServer({ schema, introspection: false, context: ({ req, res }: { req: Request; res: Response }) => ({ req, res, }), }); await server.start(); app.use(express.json({ limit: '50mb' })); app.use(express.urlencoded({ limit: '50mb', extended: true })); server.applyMiddleware({ app, cors: { credentials: true, origin: [ process.env.ORIGIN as string, 'http://localhost:4000/', 'https://studio.apollographql.com', ], }, bodyParserConfig: false, }); //needed for REST? app.use(cors({ origin: process.env.ORIGIN as string, credentials: true })); app.use(cookies()); //Rest API app.use('/auth', require('./src/auth/aai').router);Nginx (lo mismo para api, resto api pero con diferente puerto)
proxy_pass http://localhost:3000; #whatever port your app runs on proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade;Configuración de Apolo
export const apolloClient = new ApolloClient({ uri: process.env.REACT_APP_API_ENDPOINT_GRAPHQL, cache: new InMemoryCache(), credentials: "include", });Funciona perfectamente bien con cookies no seguras tanto en localhost como en dominio https. ¿Qué me estoy perdiendo?