Onceler给出错误的令牌(bitskins api)
我有一个node.js的“一次性包”的问题。 我想访问公共bitkins API。 我有2台服务器。 免费的networking空间(cloud9-ide)和一个虚拟服务器。 这是我的代码:
var TOTP = require('onceler').TOTP; var totp = new TOTP('SECRET_CODE'); console.log(totp.at());
我运行在我的免费cloud9网站空间,我得到我的正确的标记,我可以用它来访问bitskins的公共API。
现在,我在我的服务器上运行完全相同的代码,并且始终只获取错误的令牌。 这两个服务器使用相同的一次性包(0.0.5),但他们给我不同的令牌。 可能是什么原因?
我试着更新软件包,或者导入我的cloud9-server的软件包。 但没有任何变化。
使用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);
您将需要同步您的设备的时钟。
Ubuntu例子:
$ sudo apt-get install ntp -y