Почему файлы cookie не отправляются в локальной сети?

#laravel #vue.js #graphql #apollo-client #vue-apollo

#laravel #vue.js #graphql #apollo-client #vue-apollo

Вопрос:

Я использую XAMPP и открываю веб-сайт, размещенный на ПК desk , с другого компьютера в локальной сети.

Я использую Laravel Passport с CreateFreshApiToken промежуточным программным обеспечением. Когда я отправляю сообщение в свой GraphQL API с ПК « desk «, все работает нормально, но отправка с другого компьютера завершается неудачей: файлы cookie не отправляются.

Файлы cookie доступны только для HTTP. Мне интересно, является ли это какой-то междоменной проблемой, но я везде использую один и тот же домен: http://desk и http://desk/graphql для моего API.

Почему файлы cookie не отправляются?

Настройка клиента Apollo

 const httpLinkSecret = new HttpLink({
  // You should use an absolute URL here
  uri: "http://desk/graphql"
});
 var csrfToken = window.csrfToken;
Vue.prototype.csrfToken = window.csrfToken;
const authMiddleware = new ApolloLink((operation, forward, error) => {
  // add authorization to the headers
  operation.setContext({
    headers: {
      "X-CSRF-TOKEN": csrfToken
    }
  });
  return forward(operation);
});


const apolloClientSecret = new ApolloClient({
  link: authMiddleware.concat(errorLink).concat(httpLinkSecret),
  cache: new InMemoryCache(),
  connectToDevTools: true
});
  

РЕДАКТИРОВАТЬ 1

Я выяснил, что на других компьютерах это работает в Chrome (только на рабочем столе, не на мобильном устройстве), но не в Edge.

РЕДАКТИРОВАТЬ 2

Если я просто делаю

 var xhr = new XMLHttpRequest();
xhr.open('POST', '/graphql', true);

xhr.onload = function () {
  // Request finished. Do processing here.
};

xhr.send(null);
  

Затем добавляется заголовок cookie. Почему это не работает с клиентом Apollo?

Комментарии:

1. Покажите свой код Laravel, в котором вы пытаетесь прикрепить файлы cookie, пожалуйста

2. @Tarasovych Они автоматически подключаются Laravel (сеанс Laravel, токен Laravel, XSRF-токен).

3. Кроме того, они не подключаются только к запросам GraphQL xhr, обычные запросы работают просто отлично

4. Попробуйте вручную прикрепить некоторые файлы cookie к вашему ответу GraphQL и посмотреть, появится ли он в браузере

5. Это не так. Я создал другой post-запрос «/ somepost» для тестирования, и к запросу прикреплен заголовок cookie. Интересно, почему это не работает с / graphql.