【问题标题】:Node crypto.randomBytes return token from function节点 crypto.randomBytes 从函数返回令牌
【发布时间】:2019-08-06 05:26:12
【问题描述】:

总结

我有一个函数,我在其中使用 crypto.randomBytes 生成令牌,但我无法从函数返回令牌。我想从 createResetToken 返回令牌。我的功能如下,我尝试了很多不同的东西,但它们不起作用。任何帮助将不胜感激!

代码

function createResetToken() {
  crypto.randomBytes(20, function(err, buf) {
    const token = buf.toString("hex");
    console.log("token inside inside", token);
    return token;
  });

}

【问题讨论】:

  • 你想从 createResetToken 调用中返回令牌吗?
  • 是的!你说对了! :)

标签: javascript node.js token node-crypto


【解决方案1】:

最简单的方法是使用randomBytes()的同步方式,不提供回调函数即可:

function createResetToken() {
  return crypto.randomBytes(20).toString("hex");
}

通过文档:

如果提供了回调函数,则生成字节 异步和回调函数调用两个 参数:err 和 buf。如果发生错误,err 将是一个错误 目的;否则为空。 buf 参数是一个 Buffer 包含 生成的字节数。

...

如果没有提供回调函数,则随机字节为 同步生成并作为缓冲区返回。将出现错误 如果生成字节时出现问题,则抛出。

【讨论】:

  • 效果很好!感谢您的帮助,尤其是这么快!我会在 4 分钟内接受你的回答
猜你喜欢
  • 1970-01-01
  • 2019-03-06
  • 2017-10-07
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多