根据阿波罗文档:
如果您的服务器使用cookie进行身份验证,您可以将端点配置为与https://studio.apollographql.com共享这些cookie。要设置此设置,cookie的值必须包含
SameSite=None; Secure
。此外,这些歌珥头必须出现在你的服务器响应工作室: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",
})
);
但是每当我打开"允许cookie"的开关时,在操场上,状态变为红色()。,"无法访问服务器">)。我的编辑器和nodemon显示没有错误。关闭允许Cookies开关解决了问题,但禁用了Cookies功能。
如何解决这个问题?
如果您正在使用cors中间件,则可能需要在apollo中设置cors。applyMiddleware设置为false,让你的cors中间件工作。
app.use(
cors({
credentials: true,
origin: "https://studio.apollographql.com",
})
);
...
apolloServer.applyMiddleware({
app,
cors: false,
});
或者,您也可以使用apollo-server提供的cors选项。
apolloServer.applyMiddleware({
app,
cors: {
origin: 'https://studio.apollographql.com',
credentials: true,
},
});