GraphQL 游乐场 - 将 Cookie 作为 Http Header "disappears"
GraphQL playground - sending Cookie as Http Header "disappears"
我正在 GraphQL Playground 中测试一些实现,我想在其中发送一个特定的 cookie,以便我可以在我的解析器中获取它。我在操场上使用内置的 Http Headers 窗格:
但是,当我添加名为 Cookie
或 cookie
的 header 时,当我尝试在我的解析器中 console.log 它时,它不会显示。所有其他自定义 Http Headers 均未出现任何问题。
如上面的屏幕截图所示,测试 header 出现,但 cookie header 没有出现。我正在使用 cookieParser,这可能是 cookie
header 消失的原因,但我不确定。这是我的 console.log 部分的屏幕截图:
当我尝试 console.log req.cookies
时,我什么也没得到,这是使用 cookieParser 的好处之一。
我的ApolloServer实现如下:
const server = new ApolloServer({
typeDefs: schema
resolvers,
dataSources: () => ({
// ...
}),
context: ({req, res}) => ({
models,
session: req.session,
req,
res
}),
// ... and the rest is not important
});
创建“自定义”cookie header 可以解决问题,例如 somecookie: <key>=<value>
,但我认为这不是最佳做法,我希望避免这样做。我希望有人知道为什么我的 cookie header
没有出现,或者我可以做些什么让它出现?
经过广泛搜索、阅读文档等。我想出了如何使这项工作成功。
在GraphQL playground设置(齿轮图标)中,位于window右上角:
我将 "request.credentials"
行更改为 "include"
并保存 UI 中的设置。阅读更多 here。
此行直接取自文档:
'request.credentials': 'omit', // possible values: 'omit', 'include', 'same-origin'
然后,我打开开发者工具 window(通常是 F12),然后转到选项卡 Application
。在这里,我只是添加了一个 cookie,如屏幕截图所示。该 cookie 是与我的请求一起发送的。
我正在 GraphQL Playground 中测试一些实现,我想在其中发送一个特定的 cookie,以便我可以在我的解析器中获取它。我在操场上使用内置的 Http Headers 窗格:
但是,当我添加名为 Cookie
或 cookie
的 header 时,当我尝试在我的解析器中 console.log 它时,它不会显示。所有其他自定义 Http Headers 均未出现任何问题。
如上面的屏幕截图所示,测试 header 出现,但 cookie header 没有出现。我正在使用 cookieParser,这可能是 cookie
header 消失的原因,但我不确定。这是我的 console.log 部分的屏幕截图:
当我尝试 console.log req.cookies
时,我什么也没得到,这是使用 cookieParser 的好处之一。
我的ApolloServer实现如下:
const server = new ApolloServer({
typeDefs: schema
resolvers,
dataSources: () => ({
// ...
}),
context: ({req, res}) => ({
models,
session: req.session,
req,
res
}),
// ... and the rest is not important
});
创建“自定义”cookie header 可以解决问题,例如 somecookie: <key>=<value>
,但我认为这不是最佳做法,我希望避免这样做。我希望有人知道为什么我的 cookie header
没有出现,或者我可以做些什么让它出现?
经过广泛搜索、阅读文档等。我想出了如何使这项工作成功。
在GraphQL playground设置(齿轮图标)中,位于window右上角:
我将 "request.credentials"
行更改为 "include"
并保存 UI 中的设置。阅读更多 here。
此行直接取自文档:
'request.credentials': 'omit', // possible values: 'omit', 'include', 'same-origin'
然后,我打开开发者工具 window(通常是 F12),然后转到选项卡 Application
。在这里,我只是添加了一个 cookie,如屏幕截图所示。该 cookie 是与我的请求一起发送的。