Estoy enviando cookies desde el servidor express ( res.cookie() ) pero esto no funciona con mi interfaz a pesar de que {withCredentials:true} en las solicitudes de obtención pero simplemente no funciona en el navegador, no Las cookies se configuran en la pestaña de la aplicación en el navegador. PERO si pruebo las solicitudes con cartero, el middleware funciona perfectamente y se muestran las cookies. Probé diferentes navegadores y diferentes dispositivos, pero ninguno. configuración cors:
app.use( cors({ credentials: true, origin: [ "http://localhost:3000", ], methods: ["GET", "POST"], }) );configuración del analizador de cookies:
app.use(cookieParser())esta es la solicitud de obtención para comprobar si el usuario ya ha iniciado sesión:
await axios .get("http://192.168.0.141:3001/login", { withCredentials: true }) .then(async (response) => { if (response) { loggedIn = true } }) .catch(async err => { loggedIn = false })el software intermedio de jwt:
const validateToken = (req, res, next) => { const accessToken = req.cookies["access-token"] if (!accessToken) { return res.status(400).json({ error: "user not authenticated" }) } try { const validToken = jwt.verify(accessToken, "test"); if (validToken) { req.authenticated = true return next(); } } catch (error) { return res.status(400).json({ error: error }); } }Si necesita más aclaraciones por favor dígame, gracias por ayudar
No mencionaste si usaste cookie-parser; para usar cookies en express necesita instalar cookie-parser y usarlo de la siguiente manera:
npm install analizador de cookies;
Luego en tu aplicación;
const cookieParser = require('cookie-parser'); // when adding middlewares app.use(cookieParser())¿Estás seguro de que no hay cookies configuradas? ¿Cómo estás comprobando eso? ¿La respuesta contiene el encabezado Set-Cookie ? ¿Qué parámetros de cookies está utilizando (seguro, mismo sitio?). Recuerde que las cookies en un navegador se guardan bajo el dominio que configuró la cookie. Si está consultando la pestaña Aplicación de las herramientas para desarrolladores, debe abrir las herramientas para desarrolladores en http://192.168.0.141:3001 , no en http://localhost:3000 . En la pestaña Aplicación de su SPA no verá esas cookies, pero el navegador debería enviarlas con cualquier solicitud XHR, por lo que debería verlas en el encabezado de Cookie de la solicitud en la pestaña Red.