【问题标题】:Unable to set header via a variable无法通过变量设置标题
【发布时间】:2020-09-24 00:24:19
【问题描述】:

我正在尝试将标头中的令牌发送到验证令牌并仅返回布尔值的端点。

这是我的代码:

const checkLoggedIn = async () => {
  let token = localStorage.getItem("user");
  if (token === null) {
    localStorage.setItem("user", "");
    token = "";
  }

  console.log(token);

  const tokenRes = await axios.post(
    "http://localhost:5000/api/auth/user/tokenIsValid",
    null,
    {
      headers: {
        "x-auth-token": token,
      },
    }
  );

  console.log(tokenRes.data);

第一个日志是为了确保我实际上是从 localStorage 获取令牌。 第二个日志应该控制台日志真或假,这是从发布请求返回的内容。 运行发布请求时,我不断收到 500 错误。但是,如果我将实际令牌传递给标头而不是令牌变量,它会按预期工作。

即使我收到错误,当我查看控制台并看到发送的标头时,我发现我确实发送了令牌但仍然是一个错误。

我不明白为什么它不接受令牌变量。

我是初学者,如果我不够清楚,我很抱歉。

如您所见,我可以记录令牌,所以我知道我得到了它。您还可以看到令牌正在传递给 x-auth-token。但它返回无效。如果我直接传递相同的令牌,一切正常。

这是我的端点代码:

router.post("/user/tokenIsValid", async (req, res) => {
try {
const token = req.header("x-auth-token");
if (!token) return res.json(false);

const verified = jwt.verify(token, config.get("jwtSecret"));
if (!verified) return res.json(false);

const user = await User.findById(verified.id);
if (!user) return res.json(false);

return res.json(true);
} catch (err) {
res.status(500).json({ error: err.message });
}
});

【问题讨论】:

  • 您能否检查网络控制台并在标头中查看其(令牌)是否在您调用该函数时实际被传递?
  • 在标头中,我看到传入的令牌。错误响应是“无效令牌”。但是,如果我直接传入令牌,它将起作用。如果有帮助,我添加了一个屏幕截图。
  • 您能否在您的端点 url 中进行控制台登录,以查看其是否与屏幕截图中显示的格式相同。
  • I added the log in the endpoint and it logs the token and i get this: Server running on port 5000 [0] MongoDB Connected... [0] "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVmNWZjZjk1Yzg1YTNlNjMxMzNlZTU4NyIsImlhdCI6MTYwMDU2NzMzOCwiZXhwIjoxNjAwNTcwOTM4fQ.KMp0KXUbde6hoFUnJMDoF6BjPKAImJTT_iAVYpBW2C4"跨度>
  • 问题似乎出在端点代码中,此令牌被清理的方式Axios.post 正在正常工作并成功发送令牌。

标签: javascript node.js reactjs


【解决方案1】:

问题出在第一次向用户发出 jwt 时。我将令牌作为 JSON.stringify(token) 传递。我删除了 JSON.stringify() 并且它起作用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-16
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 2016-08-06
    • 2011-12-07
    • 1970-01-01
    相关资源
    最近更新 更多