Mi parte delantera (sin Framwork) y trasera (nodejs con express) son independientes
Tengo muchos problemas para obtener la cookie connect.sid de express-session.
Con la siguiente configuración, puedo hacer que funcione en Chrome.
Pero con Microsoft Edge o IE10, el navegador bloquea la cookie connect.sid y nunca se devuelve con otra consulta.
Volver nodejs ejemplo de mi código
índice.js
const express = require('express'); const cors = require('cors'); const router = require('./app/routers/index'); const session = require('./app/middleware/sessionMiddleware'); app.set("trust proxy", 1); app.use((req,res,next)=>{ res.header('Access-Control-Allow-Credentials', 'true'), next() }); const corsOptions = { credentials:true, origin:['http://localhost:5500','http://127.0.0.1:5500'] } app.use(cors(corsOptions)); app.use(session()); app.use(router); const PORT = process.env.PORT || 3000; app.listen(PORT,()=>{ console.log(`http://localhost:3000`) });middleware de sesión expresa
let cookie; if(process.env.SESSION_MINUTES){ cookie = { maxAge: process.env.SESSION_MINUTES * 60 * 1000, sameSite:'lax', } } const sessionMiddleware = ()=>{ return session({ saveUninitialized:true, resave:true, secret:process.env.SESSION_SECRET ?? 'hdlfdfMDFDFD5666674123ddkfkjfkjfMFDLKF@df', cookie :cookie }); } module.exports = sessionMiddleware;loginAction.controller
loginAction :async (req, res,next)=>{ try{ //find user in database const user = findUserInDatabase(); if(!user){ res.status(422).json({ message:'error in login or password' }); } const { id, login } = user; //user session req.session.user = { 'id':id }; res.status(200).json({ 'authorize':true, 'message':'Welcome '+ login, }); } catch(error){ console.log(error) } };ejemplo frontal
login.js (parámetro Fecth)
const setting = { method: 'post', credentials:'include', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body : JSON.stringify(dataLogin) } const response = await fetch(urlPath , setting);gracias de antemano por su ayuda y respuesta
cirille