Obtener API con cookie – Fetch API





Estoy probando la nueva API Fetch pero tengo problemas con las cookies. Específicamente, después de un inicio de sesión exitoso, hay un encabezado de cookie en solicitudes futuras, pero Fetch parece ignorar esos encabezados y todas mis solicitudes realizadas con Fetch no están autorizadas.

¿Es porque Fetch todavía no está listo o porque Fetch no funciona con Cookies?

Construyo mi aplicación con Webpack. También uso Fetch en React Native, que no tiene el mismo problema.

 

Solución a «Obtener API con cookie»

 

Fetch no utiliza cookies de forma predeterminada. Para habilitar las cookies, haga esto :

fetch(url, {
  credentials: "same-origin"
}).then(...).catch(...);

 





Además  para aquellos que están trabajando con solicitudes de origen cruzado: credentials: 'include'

Ejemplo de solicitud de recuperación JSON:

fetch(url, {
  method: 'GET',
  credentials: 'include'
})
  .then((response) => response.json())
  .then((json) => {
    console.log('Gotcha');
  }).catch((err) => {
    console.log(err);
});

 

y si ninguna de las soluciones anteriores funciona puedes probar con:

  1. Llamar a POST / api / auth y ver que las cookies se recibien correctamente.
  2. Luego, llamar a GET / api / users / with credentials: 'include'y obtener 401 unauth, porque no se enviaron cookies con la solicitud.

La CLAVE también se configura credentials: 'include'para la primera /api/authllamada.

 

 





Deja una respuesta

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