【问题标题】:Increase validity time for otp in speakeasy node library增加speakeasy节点库中otp的有效时间
【发布时间】:2016-04-25 18:11:25
【问题描述】:

如何增加speak easy库中token的有效时间。

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

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

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

【问题讨论】:

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


    【解决方案1】:

    根据您提供的documentation linksstep 是与timeepoch 一起使用的属性,用于在一段时间后使令牌失效。

    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
    });
    

    所以,如果epochtime 设置为默认值,step 可用于定义令牌的有效时间(以秒为单位)。你使用了step : 100。这就是为什么您的令牌在 100 秒后失效的原因。所以,如果你增加step的时间,可以增加token的有效期。

    注意:时间以秒为单位。

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

    【讨论】:

    • 它不会持续100秒。它会在100秒之前失效;我想 10 到 20 秒
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2020-05-29
    • 1970-01-01
    • 2020-12-06
    • 1970-01-01
    • 2018-04-17
    • 2016-10-03
    相关资源
    最近更新 更多