【问题标题】:Not able to get cookie from Node to React无法从 Node 获取 cookie 到 React
【发布时间】:2021-10-12 05:59:39
【问题描述】:

我创建了一个简单的登录系统,在某些用户登录后端后,我使用 jwt 令牌值设置配置文件 cookie

           res.cookie('profile',jwt_token,{
                secure : false,
                httpOnly : true
           });

在 React 前端,我正在向 Node 后端发送一个 get 请求,我希望在该后端获得该 jwt 令牌

             const { data } = await axios.get('http://localhost:2000/users/test', {withCredentials:true});

这是我获取 cookie 的控制器

export const test = async (req,res) =>{
   try {
         const cookie = req.cookies.profile || "no cookie";
         res.json(cookie);
    } catch (error) {
         console.log(error.message);
         res.status(406).json({success:false});
    }
 };

当我在使用 Postman 登录后尝试获取 cookie 时,我得到了 cookie 值,但是当我尝试通过 axios 从 React 获取 cookie 时,我得到“没有 cookie”。我还在 Node 中设置了 app.use(cors())

【问题讨论】:

  • 你在使用带节点的快速服务器吗?
  • @danwebb 是的,我是

标签: node.js reactjs cookies


【解决方案1】:

您可能需要安装cookie-parser 中间件http://expressjs.com/en/resources/middleware/cookie-parser.html,然后将其添加到您的应用中:

const cookieParser = require('cookie-parser');

//...

app.use(cookieParser())

【讨论】:

  • @t3_rry 是的,我已经安装了这个
【解决方案2】:

显然存在一个已知的 Axios 错误,可以这样解决。只需添加这行代码,然后重试。

 axios.defaults.withCredentials = true;
 const { data } = await axios.get('http://localhost:2000/users/test', {withCredentials:true});

【讨论】:

  • 仍然没有,在邮递员中我得到 req.cookies.profile 但是当我发送请求从 React 获取它时它等于 { }
猜你喜欢
  • 2022-12-04
  • 1970-01-01
  • 2021-05-18
  • 2018-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 2012-08-10
相关资源
最近更新 更多