Saltar al contenido

¿Axios es compatible con Set-Cookie? ¿Es posible autenticarse a través de la solicitud HTTP de Axios?

Presta atención ya que en esta crónica vas a encontrar el arreglo que buscas.Este enunciado ha sido probado por nuestros expertos para asegurar la calidad y exactitud de nuestro contenido.

Solución:

¡Probar esto!

axios.get('your_url', withCredentials: true); //for GET
axios.post('your_url', data, withCredentials: true); //for POST
axios.put('your_url', data, withCredentials: true); //for PUT
axios.delete('your_url', data, withCredentials: true); //for DELETE

Para obtener más información sobre esto en los documentos de axios:

“withCredentials indica si las solicitudes de control de acceso entre sitios deben realizarse o no con credenciales” – https://github.com/axios/axios

Más detalles sobre withCredentials:

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials

Sí, puede establecer cookies por Axios. Las cookies deben pasarse al objeto de encabezados. Puede enviar cookies en un get/post/put/delete/etc. solicitud: como lo sugiere Aarón:

axios.get('URL', 
  withCredentials: true
); 
axios.post('URL', data, 
withCredentials: true
); 
axios.put('URL', data, 
withCredentials: true
);
axios.delete('URL', data, 
withCredentials: true
);

O también puedes probar esto:

axios.get(url, 
            headers: 
                Cookie: "cookie1=value; cookie2=value; cookie3=value;"
            
        ).then(response => 
              console.log(response);
);

En caso de que alguien más se enfrente al problema que he tenido,

Aquí hay una nueva publicación de mi respuesta sobre una pregunta similar https://stackoverflow.com/a/62821342/8479303


En mi caso, el panel de red mostró que la respuesta tenía el encabezado ‘Set-Cookie’, pero en axios el encabezado no aparecía y la cookie se estaba configurando.

Para mí, la resolución fue establecer el Access-Control-Expose-Headers encabezamiento.

Como explicación, a partir de este comentario sobre un problema en el repositorio de axios, fui dirigido a las notas de esta persona, lo que me llevó a establecer el Access-Control-Expose-Headers encabezado, y ahora la cookie está configurada correctamente en el cliente.

Entonces, en Express.js, tuve que agregar el exposedHeaders opción a mi cors middleware:

const corsOptions = 
  //To allow requests from client
  origin: [
    "http://localhost:3001",
    "http://127.0.0.1",
    "http://104.142.122.231",
  ],
  credentials: true,
  exposedHeaders: ["set-cookie"],
;

...

app.use("/", cors(corsOptions), router);

También era importante que en el lado de axios use el withCredentials config en las siguientes solicitudes de axios que quería incluir las cookies.

ex/

const  data  = await api.get("/workouts",  withCredentials: true );

valoraciones y reseñas

Si conservas algún reparo y disposición de perfeccionar nuestro reseña eres capaz de ejecutar una acotación y con placer lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *