ApolloClient lama secara otomatis melewati cookie.
HttpLink, BatchHttpLink menggunakan apollo-fetch, yang menggunakan isomorphic-fetch. Secara default, isomorphic-fetch tidak mengirim cookie.
Solusi saat ini cukup rumit:
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 })
Masalah ini dapat diselesaikan dengan berbagai cara:
1) kami dapat mengaktifkannya secara default untuk meniru versi lama
2) kita bisa menambahkan opsi lain ke apollo-link-http dan apollo-link-batch-http, yang disebut fetchOption
, jadi kita bisa melakukan sesuatu seperti
const fetchOptions = {
credentials: 'same-origin',
};
const link = new BatchHttpLink({ uri, fetchOptions });
Saya bersedia melakukan perbaikan + tes, hanya perlu bantuan untuk menentukan arah mana yang ingin kita tuju :-)
Hasil yang diinginkan:
Cookie harus dikirim saat melakukan permintaan
Hasil sebenarnya:
Tidak ada cookie yang dikirim
Bleh, duplikat #44
Maaf!
Saya tidak yakin ini benar-benar duplikat lengkap #44. Masalah itu hanya membahas HttpLink
, bukan BatchHttpLink
. Kami masih perlu menggunakan solusi yang sama hingga BatchHttpLink
diperbarui untuk juga mendukung kredensial.
Bisakah kami membuka kembali masalah ini hingga BatchHttpLink juga ditangani?
+1 ke @mjfaga , saya mengalami masalah yang sama dengan BatchHttpLink
Setuju, ini masih open issue untuk batch 👍
Sepertinya masalah lain terbuka untuk #343 ini, saya akan menutup kembali ini.
Komentar yang paling membantu
+1 ke @mjfaga , saya mengalami masalah yang sama dengan BatchHttpLink