Как переслать заголовки ответа через GraphQL клиенту - PullRequest
0 голосов
/ 21 декабря 2018

У меня проблема с использованием GraphQL, когда заголовки ответа отбрасываются при возврате клиенту.Мое приложение использует NodeJS, Passport.js и Express Cookie-Session для управления аутентификацией и сессиями.

У меня есть существующий маршрут /login, который аутентифицируется с помощью Passport и возвращает клиенту объект user{} и заголовки set-cookie.В результате в браузере клиента создается cookie и устанавливается его сеанс.

Теперь мы недавно добавили GraphQL, и я создал запрос login, который вызывает существующий маршрут /login и отвечаетuser{} объект.Однако, когда GraphQL возвращает ответ клиенту, заголовки ответа больше не включаются, поэтому файл cookie никогда не создается.

Как переслать исходные заголовки ответа через GraphQL для достижения клиента?

Вот пример входа в GraphQL:

login { 
  type: typeLogin,
  args : { 'username/password here' },
  async resolve(_, args, context) {
    const response = await fetch('/login', {
      credentials: 'include',
      method: 'POST',
      body: JSON.stringify('username/password here')
   })

   const data = await response.json();

   // console.log(response.headers) will display correct headers

   return data; // User is returned but response headers are not
   }
 }

1 Ответ

0 голосов
/ 21 декабря 2018

Вот как я это уже делаю,

Ссылка: https://github.com/masmerino13/graphql-backend/blob/master/src/resolvers/Mutations/UserMutation.js#L31

Дайте мне знать, если это работает для вас

С уважением!

...