增加speakeasy节点库中otp的有效时间

时间:2016-04-22 14:29:23

标签: javascript node.js express strongloop one-time-password

如何在简单的库中增加令牌的有效时间。

var secret =speakEasy.generateSecret({length:20});
        var token = speakEasy.totp({
          secret: secret.base32,
          encoding: 'base32',
          step:100
        });

默认情况下,在验证为false后的几秒钟内有效

var verified=speakEasy.totp.verify({
                    secret:secret,
                    encoding:'base32',
                    token:token
                });

您可以查看以下链接

http://speakeasyjs.github.io/speakeasy/docs/speakeasy/2.0.0/global.html https://github.com/speakeasyjs/speakeasy

1 个答案:

答案 0 :(得分:0)

根据您提供的documentation linkssteptimeepoch用于在一段时间后使令牌无效的属性。

var secret = speakEasy.generateSecret({length:20});
var token = speakEasy.totp({
  secret : secret.base32,
  encoding : 'base32',
  // time : Date.new(),  default is current time.
  // epoch : 0,  default is 0. It is the offset from UNIX epoch.
  // step is used, with time as time + step, to invalidate the token.
  step : 100
});

enter image description here

因此,如果将epochtime设置为默认值,则可以使用step来定义令牌有效时间(以秒为单位)。您使用了step : 100。这就是为什么你的令牌在100秒后无效。因此,如果您增加step的时间,则可以增加令牌的有效性。

注意:时间以秒为单位。

希望这会有所帮助。或查询评论。