Старый ApolloClient автоматически передавал файлы cookie.
HttpLink, BatchHttpLink использует apollo-fetch, который использует изоморфную выборку. По умолчанию isomorphic-fetch не отправляет файлы cookie.
Текущий обходной путь довольно сложен:
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 })
Эту проблему можно решить несколькими способами:
1) мы могли бы включить его по умолчанию, чтобы имитировать старую версию
2) мы могли бы добавить еще одну опцию к apollo-link-http и apollo-link-batch-http, называемую fetchOption
, чтобы мы могли просто сделать что-то вроде
const fetchOptions = {
credentials: 'same-origin',
};
const link = new BatchHttpLink({ uri, fetchOptions });
Я готов исправить + тесты, просто нужна помощь, чтобы понять, каким путем мы хотим идти :-)
Предполагаемый результат:
Файлы cookie должны отправляться при выполнении запроса
Фактический результат:
Файлы cookie не отправляются
Блех, дубликат № 44
Извините!
Я не уверен, что это действительно полная копия № 44. Эта проблема касается только HttpLink
, а не BatchHttpLink
. Нам все еще нужно использовать тот же обходной путь, пока BatchHttpLink
будет обновлен для поддержки учетных данных.
Можем ли мы повторно открыть эту проблему, пока не будет решена и BatchHttpLink?
+1 к @mjfaga , у меня такая же проблема с BatchHttpLink
Согласен, это все еще нерешенная проблема для партии 👍
Похоже, для этого # 343 была открыта другая проблема, я закрою ее повторно.
Самый полезный комментарий
+1 к @mjfaga , у меня такая же проблема с BatchHttpLink