为什么这个承诺 JWT.verify 不起作用?

Why this promisified JWT.verify isn't working?

所以我试图手动承诺 jwt.verify 但由于某种原因它没有将 decoded_token 传递给解析函数。

这工作正常...

这不是..

PromisifiedJWTVerify.. 有人可以提及此行为的原因吗?

您需要像在 jwt.verify(token, secret, resolve) 上那样使用调用 resolve(),当您只是执行 resolve 时,您不是在调用它,而是在引用它。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

编辑:搞砸我上面的回答我认为它应该是这样的

jwt.verify(token, secret, (err, data) => {
  if (err) return reject(err);
  return resolve(data);
});

这是因为回调中传递的第一个参数是错误,你不想放在resolve中而是放在reject中,而第二个参数是实际数据如果你真的想要 resolve

https://www.npmjs.com/package/jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback