const setContext = require('apollo-link-context'); const axios = require('axios') const req = async () => { const dotenv = require("dotenv") dotenv.config() const res = await axios.post(process.env.URL, { email: process.env.EMAIL, password: process.env.PASSWORD}, { headers: { 'content-type' : 'application/x-www-form-urlencoded' } }, {withCredentials: true} ); console.log(res.headers['set-cookie']); } req();¿Alguien sabe cómo retener las cookies en la respuesta? Hay dos cookies específicas en la respuesta que quiero guardar en una variable para poder usarlas en otra solicitud.
He intentado leer documentación y usar otras bibliotecas para solicitudes, pero nada funciona.
No tiene que guardar las cookies en el encabezado explícitamente para usarlas en sus solicitudes posteriores. Se almacenan automáticamente en el navegador enviado junto con las solicitudes posteriores. Sin embargo, para que eso suceda, debe configurar {withCredentials: true} en su solicitud posterior y el servidor debe tener los encabezados de respuesta con la propiedad ' ACCESS-CONTROL-ALLOW-CREDENTIALS': true . Ahora dependiendo de su backend. server, puede encontrar bibliotecas de análisis de cookies como js-cookie . lo que le permitirá leer y almacenar fácilmente las cookies en una variable. Pero si por algún motivo específico desea configurarlo como un encabezado en su solicitud posterior explícitamente, puede hacerlo utilizando el código a continuación. Sin embargo, tenga en cuenta que no puede leer/escribir/editar cookies httpOnly marcadas desde el navegador.
const cookie = require("js-cookie"); (async()=>{ const res = await axios.post(process.env.URL, { email: process.env.EMAIL, password: process.env.PASSWORD}, { headers: { 'content-type' : 'application/x-www-form-urlencoded' } }, {withCredentials: true} ); //assuming the server sets the cookie in its response headers during your 1st request let mycookieValue = cookie.get("my-cookie-key"); axios.get(second-request-url,{headers:{mycookieValue}});})();