node.js - 如何通过 GraphQL 将响应标头转发给客户端
问题描述
我在使用 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
}
}
解决方案
这就是我已经这样做的方式,
让我知道这是否适合您
问候!
推荐阅读
- c# - 创建 SpeechRecognitionEngine 对象时出现 NullReferenceException
- python - 如何请求网页的一部分scrapy(python)
- deno - Deno Uncaught AddrInUse:通常只允许每个套接字地址(协议/网络地址/端口)使用一次。(操作系统错误 10048)
- rest - POST api 请求和响应对象建模的 RESTful api 最佳实践
- r - 在列表中使用 grep 以在 R 中填充新的 df
- c# - Xamarin Forms 循环遍历网格中的列表
- r - 带有附加参数的 RcppParallel worker
- java - 将图像上传到 AWS S3 而不推送到边缘服务器
- ios - 启动屏幕图像无法显示
- spring-boot - Spring JPA Query注解——输入一个sql文件