繁体   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