这个问题已经被问了一百万遍了,但是我已经尝试了全部,似乎没有任何作用。
我的情况:
我已经将节点/快速后端部署为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。
我已经呆了整整一天,这让我发疯。我确定我缺少一些简单的东西。有什么想法吗?