如何绕过客户端js中的Buffer对象错误

How to bypass Buffer object error in client side js

提问人:infinite-blank- 提问时间:2/4/2023 更新时间:2/4/2023 访问量:78

问:

我正在尝试使用库验证 2FA 代码:speakeasy

try {
        var verified = speakeasy.totp.verify({
          secret: keyBase32_,
          encoding: 'base32',
          token: code as string,
        });
      }
      catch (e) {
        console.log(e);
      }

但是,我不断收到此错误:

error:  ReferenceError: Buffer is not defined
  at Object.digest (eval at <anonymous> (eval at <anonymous> (lockdown.umd.min.js:1:22409)), <anonymous>:52045:13)
  at Object.hotpGenerate (eval at <anonymous> (eval at <anonymous> (lockdown.umd.min.js:1:22409)), <anonymous>:52061:52)
  at Function.hotpVerifyDelta [as verifyDelta] (eval at <anonymous> (eval at <anonymous> (lockdown.umd.min.js:1:22409)), <anonymous>:52084:36)
  at Function.totpVerifyDelta [as verifyDelta] (eval at <anonymous> (eval at <anonymous> (lockdown.umd.min.js:1:22409)), <anonymous>:52113:38)
  at Function.totpVerify [as verify] (eval at <anonymous> (eval at <anonymous> (lockdown.umd.min.js:1:22409)), <anonymous>:52120:33)
  at onRpcRequest (eval at <anonymous> (eval at <anonymous> (lockdown.umd.min.js:1:22409)), <anonymous>:54322:41)
  at async f.executeInSnapContext (bundle.js:2:772169)
  at async bundle.js:2:767893
  at async Object.snapRpc (bundle.js:2:773159)
  at async f.onCommandRequest (bundle.js:2:769013)

我正在 Chrome 扩展程序中运行它。当我在本地运行代码时,它工作正常,但在浏览器中失败。我读到这是因为 Buffer 全局对象在浏览器中不可用,那么我该如何绕过它呢?

任何帮助将不胜感激。

JavaScript 节点 .js TypeScript 浏览器 客户端

评论


答: 暂无答案