Ani*_*ddh 1 cookies graphql apollo-server graphql-playground
根据阿波罗文档:
如果您的服务器使用 cookie 进行身份验证,您可以将端点配置为与https://studio.apollographql.com共享这些 cookie 。要进行此设置,您的 cookie 值必须包含
SameSite=None; Secure. 此外,这些 CORS 标头必须存在于服务器对 Studio 的响应中:Run Code Online (Sandbox Code Playgroud)Access-Control-Allow-Origin: https://studio.apollographql.com Access-Control-Allow-Credentials: true
我已经完成了那里提到的所有事情。我使用的是express,所以我使用cors中间件来设置标头:
app.use(
cors({
credentials: true,
origin: "https://studio.apollographql.com",
})
);
Run Code Online (Sandbox Code Playgroud)
但每当我在操场上打开“允许 Cookie”的开关时,状态都会变成红色(即“无法到达服务器”)。我的编辑器和nodemon没有显示错误。关闭“允许 Cookie”开关可以解决问题,但会禁用 Cookie 功能。
我该如何解决这个问题?
小智 6
如果您使用 cors 中间件,您可能需要将 apollo.applyMiddleware 中的 cors 设置为 false 并让您的 cors 中间件正常工作。
app.use(
cors({
credentials: true,
origin: "https://studio.apollographql.com",
})
);
...
apolloServer.applyMiddleware({
app,
cors: false,
});
Run Code Online (Sandbox Code Playgroud)
或者,您也可以使用 apollo-server 提供的 cors 选项。
apolloServer.applyMiddleware({
app,
cors: {
origin: 'https://studio.apollographql.com',
credentials: true,
},
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1495 次 |
| 最近记录: |