必须提供 ExpressJs JWT 秘密或 public 密钥

ExpressJs JWT secret or public key must be provided

我想进行检查验证,但 return 对我来说

JsonWebTokenError: secret or public key must be provided

我可以拿令牌成功了

我该如何解决这个问题?

我正在学习本教程;

https://www.youtube.com/watch?v=8Ip0pcwbWYM&t=633s

const jwt = require('jsonwebtoken');
module.exports = (req, res, next) => {
  try {
    const token = req.headers.authorization.split(" ")[1];
    console.log(token);
    const decoded = jwt.verify(token, process.env.JWT_KEY);
    req.userData = decoded;
    next();
  } catch (error) {
    console.log(error);
    return res.status(401).json({
      message: 'Auth failed'
    })
  }
}

process.env 全局变量由节点在运行时注入,供您的应用程序使用。您需要创建一个新的 env 文件来存储这些环境变量。

就是说,您必须在单独的 js 存档中声明您的变量 JWT_KEY。如果您使用的是 Nodemon,只需创建一个存档 nodemon.json(在这种情况下就像 env 一样工作)并像这样声明您的变量:

{ 
"env": { 
  "JWT_KEY": value,
  ...
  }
}