reactjs - 使用apollo,响应头中的cookie但未设置

标签 reactjs cookies graphql apollo express-session

我正在开发一个用户登录/注册功能作为一个更大项目的一部分,并且正在本地主机(apollo 服务器和react apollo 前端)上工作。我在 session 中使用快速 session 。

提交登录信息时,我可以看到响应 header 内部已设置 cookie,但未在“应用​​程序”->Cookies 中设置。

我尝试过不同的浏览器,使用createHttpLink、apollo-boost,以及使用include & same-origin(使用同源)。

我已经尝试让它工作两周了,但已经没有什么可以尝试的了,这是我最后的选择!我知道这将是一件非常微不足道的事情,但我就是看不到它。

如果我使用 GraphqL Playground 并将设置更改为包含凭据,我可以看到在那里设置的 cookie。

服务器正在 localhost:8080/graphql 上运行 客户端正在 localhost:3000 上运行

客户:

const client = new ApolloClient({
    link: new HttpLink({
        uri: 'http://localhost:8080/graphql',
        credentials: 'same-origin',
    }),
    cache: new InMemoryCache()
});

科尔:

app.use(
    cors({ 
        origin: 'http://localhost:3000',
        credentials: true
    })
);

快速 session :

app.use(
    session({
        name: "sess",
        secret: process.env.SESSION_SECRET,
        resave: false,
        saveUninitialized: false,
        cookie: {
            httpOnly: true,
            secure: false,
            maxAge: 1000 * 60 * 60 * 24 * 7,
        },
    })
);

响应 Cookie:

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Vary: Origin
Access-Control-Allow-Credentials: true
Content-Type: application/json
Content-Length: 69
set-cookie: sess=s%3AAZXnGb5BVc1aAOwH6zBNiT8mB6Ebf75k.in%2BPU1OvxymDPdPIZBf8%2FQzrRmM0S04tXFzXDwYCnk8; Path=/; Expires=Sat, 03 Nov 2018 13:59:57 GMT; HttpOnly
Date: Sat, 27 Oct 2018 13:59:57 GMT
Connection: keep-alive

最佳答案

我也遇到了同样的问题。如果您在 2 年后仍在寻找答案,请在客户端中将凭据设置为“包含”,如下所示:

const client = new ApolloClient({
  uri: 'http://localhost:4000/graphql',
  cache: new InMemoryCache(),
  credentials: 'include'
});

关于reactjs - 使用apollo,响应头中的cookie但未设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53022767/

相关文章:

graphql - 将结果写入存储以供查询时出错。无法读取未定义的属性 'query'

javascript - 我如何将 cookie 添加到我的弹出表单?仅使用 css 和 html 构建

javascript - jQuery Cookie 在 IE 8 中不起作用?

graphql - 为什么 GraphQL 可变变异语法如此冗余?

reactjs - react : how to overwrite state

Javascript node.js,设置要在另一个页面上使用的cookie

javascript - 如何为 GraphQL 服务器设计以下解析器?

reactjs - airbnb/React-dates,startDateId 属性是什么?

javascript - 正则表达式 InputNumber 格式化程序 ant-design

javascript - React Redux 将状态作为 Prop 传递给组件