Onceler提供了错误的令牌(bitskins api)

时间:2016-05-16 20:25:45

标签: node.js

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

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

我在我的免费cloud9网站空间运行这个,我得到了正确的令牌,我可以使用它来访问bitkins的公共API。

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

我尝试更新软件包,或者导入cloud9-server的软件包。但没有任何改变。

2 个答案:

答案 0 :(得分:0)

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

另一种解决方法是使用speakeasy:

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

答案 1 :(得分:0)

您需要同步设备的时钟。

Ubuntu示例:

$ sudo apt-get install ntp -y