El antiguo ApolloClient pasaba cookies automáticamente.
HttpLink, BatchHttpLink usa apollo-fetch, que usa isomorphic-fetch. De forma predeterminada, isomorphic-fetch no envía cookies.
La solución alternativa actual es bastante complicada:
const uri = '/api/graphql';
// by default, apollo-link-http doesn't send cookies
const customFetch = (uri, options) =>
fetch(uri, {
...options,
credentials: 'same-origin',
});
// create an apollo fetch instance with our hacked fetch instance
const apolloFetch = createApolloFetch({
uri,
customFetch,
});
const link = new BatchHttpLink({ uri, fetch: apolloFetch })
Este problema se puede resolver de varias formas:
1) podríamos habilitarlo por defecto para imitar la versión anterior
2) podríamos agregar otra opción a apollo-link-http y apollo-link-batch-http, llamada fetchOption
, por lo que podríamos hacer algo como
const fetchOptions = {
credentials: 'same-origin',
};
const link = new BatchHttpLink({ uri, fetchOptions });
Estoy dispuesto a hacer la corrección + las pruebas, solo necesito ayuda para averiguar en qué dirección queremos ir :-)
Resultado esperado:
Las cookies deben enviarse al realizar una solicitud
Resultado real:
No se envían cookies
Bleh, duplicado del # 44
¡Perdón!
No estoy seguro de que este sea realmente un duplicado completo del n. ° 44. Ese problema solo abordó HttpLink
, no BatchHttpLink
. Todavía necesitamos usar la misma solución alternativa hasta que BatchHttpLink
se actualice para admitir también las credenciales.
¿Podemos volver a abrir este problema hasta que también se solucione BatchHttpLink?
+1 a @mjfaga , tengo el mismo problema con BatchHttpLink
De acuerdo, este sigue siendo un tema abierto para el lote 👍
Parece que había otro problema abierto para este # 343, volveré a cerrarlo.
Comentario más útil
+1 a @mjfaga , tengo el mismo problema con BatchHttpLink