【发布时间】:2021-04-06 14:30:26
【问题描述】:
我在 Heroku 上部署了一个 Node/Express 服务器,我用它来发送 httpOnly cookie 来存储 JWT。我一直在使用 Axios 设置 cookie,同时将我的 React 应用程序托管在端口 3000 上,并将 Express 服务器托管在端口 5000 上。
React 应用中的 Axios 配置
const myAxios = axios.create({
withCredentials: true,
baseURL: "http://localhost:5000/",
});
Express App的index.js
app.use(cors({ origin: true, credentials: true }));
在我将我的应用程序部署到 Heroku 并将我的 Axios 配置切换为使用 baseURL:http://app-name.herokuapp.com 之前,这一直运行良好。我现在不再接收 cookie(对于 GET 和 POST 请求)。如果我直接在 Chrome 或 Postman 中访问 http://app-name.herokuapp.com/get-cookie-endpoint,我仍然会得到 cookie。但是,当我尝试从 localhost:3000 上的 React 应用程序调用 myAxios.get('/get-cookie-endpoint) 时,我不再收到 cookie。我检查了 XHR 请求,但仍然收到 Set-Cookie 响应标头。
有什么想法吗?我尝试了许多不同的 Axios 和 CORS 设置,但似乎没有任何效果。
【问题讨论】:
标签: node.js express heroku cookies axios