set-cookie在响应标头中返回,cors来源未通配,但cookie未存储在浏览器中

时间:2020-07-11 05:40:36

标签: express cookies google-cloud-platform axios cross-domain

这个问题已经被问了一百万遍了,但是我已经尝试了全部,似乎没有任何作用。

我的情况:

我已经将节点/快速后端部署为Google Cloud Run服务。 我正在本地运行前端,试图在云中登录到后端。前端在http上提供服务,后端在https上提供服务。我在后端启用了cors。我的配置是:

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

我正在使用axios,并且已经设置了withCredentials: true

axios.defaults.baseURL = ApiURL;
const { data } = await axios({
    method: 'post',
    url: `/api/login`,
    data: {
        username: this.state.username,
        password: this.state.password,
        keepLoggedIn: this.state.keepLoggedIn,
    },
    withCredentials: true,
});

当我在本地运行后端时,此设置非常有效,但是当然没有cors了。当我尝试将前端指向Cloud Run服务时登录时,我从后端收到了一个带有set-cookie标头的响应,但没有出现任何cookie,但Chrome开发人员的“存储”>“ Cookie”部分控制台,就像我本地后端一样。这样,我的其余axios请求中当然就没有发送任何需要的cookie。

我已经呆了整整一天,这让我发疯。我确定我缺少一些简单的东西。有什么想法吗?

0 个答案:

没有答案