我对node.js'everler包有问题。我想访问公共的bitkins API。我有2台服务器。一个免费的网站空间(cloud9-ide)和一个虚拟服务器。这是我的代码:

var TOTP = require('onceler').TOTP;
var totp = new TOTP('SECRET_CODE');
console.log(totp.at());


我在免费的cloud9网站空间上运行了此代码,并获得了正确的令牌,可以使用该令牌访问bitkins的公共API。

现在,我在服务器上运行完全相同的代码,并且始终得到错误的令牌。两台服务器都使用相同的afterler软件包(0.0.5),但它们给了我不同的令牌。可能是什么原因?

我试图更新该软件包,或导入我的cloud9-server的软件包。但是什么都没有改变。

最佳答案

使用totp.now()而不是totp.at()。 totp.at接受您要生成otp的时间的参数。

解决此问题的另一种方法是使用talkeasy:

var speakeasy = require("speakeasy");
var token = speakeasy.totp({
  secret: config.get("bitSkins").otpCode,
  encoding: 'base32'
});
console.log(token);

10-07 18:39