【问题标题】:React doesn't keep or send cookies to Node?React 不保留或发送 cookie 到 Node?
【发布时间】:2019-12-17 22:55:56
【问题描述】:

我有一个带有这个简化 API 的 Node 应用程序,可以检查用户是否通过了身份验证(通过会话):

export default (req, res,) => {
  if (!req.session || !req.session.loggedIn) {
    return res.status(401).send();
  }
  return res.status(200).send();
};

在 Postman 中一切正常,但是当 React 客户端发出这个请求时:

axios.get(`${domain}/is-auth`)
  .then((res) => {
    return res.status === 200;
  })
  .catch((err) => {
    throw err;
  });

...它总是得到 401 并返回 false。服务器看不到它的会话。我正在阅读它是关于 cookie 的,但 cookie 不应该由浏览器自动保存和发送吗?如果没有,那么我该怎么做?请帮忙。

【问题讨论】:

    标签: node.js reactjs cookies postman


    【解决方案1】:

    fetchaxios 确实不会随请求自动发送凭据,您必须通过将“withCredentials”选项设置为 true 来指定它:

    axios.get(`${domain}/is-auth`, { withCredentials: true })
      .then((res) => {
        return res.status === 200;
      })
      .catch((err) => {
        throw err;
      });
    

    【讨论】:

    • 哦,谢谢!虽然我将其更改为基于 JWT 并手动完成,但很高兴知道。
    猜你喜欢
    • 2012-01-29
    • 1970-01-01
    • 2020-08-14
    • 2015-07-14
    • 1970-01-01
    • 2019-10-31
    • 2018-03-12
    • 2018-04-16
    相关资源
    最近更新 更多