Express повар ie парсер не создает куки в производстве - PullRequest
0 голосов
/ 17 марта 2020

Я использую graphql-yoga и пишу файлы cookie, которые обращаются к Microsoft Graph API. На переднем крае у меня есть клиент apollo с настроенным Next JS, и он отлично работает ... в разработке. Когда я развертываю сервер, вообще не распознаются файлы cookie от внешнего интерфейса. В моем чтении я думаю, что это как-то связано с тем, что Next JS отображается на сервере (хотя при запуске следующей сборки написано stati c build ...) Я уверен, что проблема где-то здесь (я ухожу комментарии, чтобы показать все места, в которых я пытался установить учетные данные для «включения»)

export default function createApolloClient(initialState, ctx) {
  // The `ctx` (NextPageContext) will only be present on the server.
  // use it to extract auth headers (ctx.req) or similar.
  return new ApolloClient({
    ssrMode: Boolean(ctx),
    link: new HttpLink({
      fetch,
      uri: process.env.NODE_ENV === 'development' ? endpoint : prodEndpoint,
      credentials: 'include', // Additional fetch() options like `credentials` or `headers`
      fetchOptions: {
        credentials: 'include',
      },
      // request: operation => {
      //   operation.setContext({
      //     fetchOptions: {
      //       credentials: 'include',
      //     },
      //   });
      // },
    }),
    connectToDevTools: true,
    // credentials: 'include',
    cache: new InMemoryCache().restore(initialState),
  });
}

Другие ответы на все эти вопросы касаются CORS, но у меня установлен CORS на моем GraphQL- Сервер:

const opts = {
      debug: process.env.NODE_ENV === 'development',
      cors:
        process.env.NODE_ENV === 'development'
          ? {
              credentials: true,
              origin: ['http://localhost:3000'],
            }
          : {
              credentials: true,
              origin: [
                '...'
              ],
            },
    };
server.start(opts, () =>
      console.log('Playground is running on http://localhost:4000'),
    );

Кто-нибудь может указать мне правильное направление? Правильно ли я смотрю на часть ApolloClient моего интерфейса? Заранее спасибо.

1 Ответ

0 голосов
/ 18 марта 2020

Это смотрело мне в лицо, но их предупреждения заглушали в консоли. Файлы cookie должны быть установлены в Chrome.

{
  ...,
  sameSite: false,
  secure: true
}

Консоль имела следующие ссылки для обеспечения понимания:

https://www.chromestatus.com/feature/5088147346030592

https://www.chromestatus.com/feature/5633521622188032

Это очень недавнее изменение в Chrome, и я только понял, что есть разница, потому что я случайно открыл свой сайт в Firefox, и это сработало.

...