У меня проблема с использованием 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
}
}