簡體   English   中英

nodejs module.exports 返回未定義的 JSON web 令牌

[英]nodejs module.exports returns undefined for JSON web token

我在獲取解碼令牌的 console.log 時遇到了一些問題。 它給了我不確定的。

const jwt = require("jsonwebtoken");

module.exports = (req, res, next) => {
  try {
    const token = req.headers.authorization.split(" ")[1];
    const decodedToken = jwt.verify(token, "secret_this_should_be_longer");
    let details = (req.userData = {
      email: decodedToken.email,
      userId: decodedToken.userId,
    });
    console.log(details.email, details.userId);
    next();
  } catch (err) {
    res.status(401).json({ message: "Auth failed!" });
  }
};

nodejs module.exports 返回未定義的 JSON web 令牌

是的,你的module.exports function 沒有返回值,所以返回值自然是undefined 這是意料之中的。

您從令牌中獲得的數據是 nn req.userData然后您調用next()繼續路由到其他請求處理程序,以便其他請求處理程序應該訪問req.userData上的解碼令牌數據。


僅供參考,這段代碼很容易被誤讀:

let details = (req.userData = {
  email: decodedToken.email,
  userId: decodedToken.userId,
});
console.log(details.email, details.userId);

我現在明白了它的作用,但我最初幾次掃視它時並沒有。 這樣會更清楚:

req.userData = {
  email: decodedToken.email,
  userId: decodedToken.userId,
};
console.log(req.userData);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM