节点请求在控制台日志中显示 jwt 令牌,但无法在 cookie 中设置

Posted

技术标签:

【中文标题】节点请求在控制台日志中显示 jwt 令牌,但无法在 cookie 中设置【英文标题】:Node request shows jwt token in console log but can't set in cookie 【发布时间】:2021-11-28 07:03:02 【问题描述】:

由于某种原因,响应是:TypeError: Cannot read property 'data' of undefined.

当我想在 cookie 中设置数据时。

但是,当我只是控制台记录数据时,它没有问题。

我收到以下请求:

registerRoute.route("/register").post(async (req, res) => const 用户名、密码、电子邮件 = req.body;

试试 等待 axios .post("网址", 用户名: ”###”, 电子邮件: ”###”, 密码: ”###”, ) .then((响应) => // 处理成功。 res.status(200); res.send("注册完成");

    if (response.data.jwt) 
      res.cookie("secureCookie", response.data.jwt, 
        secure: process.env.NODE_ENV !== "development",
        httpOnly: true,
        expires: dayjs().add(30, "days").toDate(),
      );
    
    console.log("User token", response.data.jwt);
  )
  .catch((error) => 
    // Handle error.
    res.status(400);
    if (error.response.data.message[0].messages[0].message) 
      res.send(error.response.data.message[0].messages[0].message);
    
    console.log(
      "An error occurred:",
      error.response.data.message[0].messages[0].message
    );
  );

捕捉 (e) 资源 .status(400) .send("发生错误:", e.response.data.message[0].messages[0]); );

谢谢!

【问题讨论】:

【参考方案1】:

发现问题了! cookie“过期”有问题。该错误只是让我感到困惑,因为它说无法读取未定义的属性“数据”。最后它与“数据”无关。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于节点请求在控制台日志中显示 jwt 令牌,但无法在 cookie 中设置的主要内容,如果未能解决你的问题,请参考以下文章

如何在客户端上保存 JWT 令牌,在节点中使用 Hapi js。?

DocuSign JWT 访问令牌请求

在 Volley 请求中添加 JWT 令牌

使用 jwt 在 springboot 中始终允许未经授权的请求

需要 JWT expiresIn 字段显示在控制台上

如何在控制器方法中使 JWT 令牌授权可选