小编paw*_*icz的帖子

浏览器中未设置会话 cookie

我在自定义 Next.js 服务器上运行前端客户端,该服务器使用 apollo 客户端获取数据。我的后端是使用 express-session 的带有棱镜的 graphql-yoga。

我在为我的客户端和后端选择正确的 CORS 设置时遇到问题,因此可以在浏览器中正确设置 cookie,尤其是在 heroku 上。

目前我正在从客户端发送 graphql 请求,apollo-client 有选项, credentials: "include"但也尝试"same-origin"过没有更好的结果。

我可以在Set-Cookie标头和 devTools/application/cookies 中看到后端响应的 cookie 客户端。但是这个 cookie 对浏览器是透明的,刷新时会丢失。

话虽如此,我还尝试实施一些后件,apollo client因为apolloLink这会拦截 cookie,response.headers但它是空的。

到目前为止,我正在考虑采用这两种解决问题的途径。

(我只是在实现 CORS,因为浏览器会阻止在没有它的情况下获取数据。)

客户

客户端的 ApolloClient 配置:

const httpLink = new HttpLink({
  credentials: "include",
  uri: BACKEND_ENDPOINT,
});
Run Code Online (Sandbox Code Playgroud)

客户端 CORS 使用和配置:

 app
    .prepare()
    .then(() => {
      const server = express()
        .use(cors(corsOptions))
        .options("*", cors(corsOptions))
        .set("trust proxy", 1);

...here goes rest of …
Run Code Online (Sandbox Code Playgroud)

heroku cross-domain session-cookies next.js apollo-client

5
推荐指数
1
解决办法
1467
查看次数