Увеличьте время действия otp в библиотеке узлов Speakeasy.

как мне увеличить действительное время для токена в библиотеке Speak Easy.

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


person Rayees    schedule 22.04.2016    source источник


Ответы (1)


Согласно предоставленным вами ссылкам на документацию, step — это атрибут, который с time и epoch используется для аннулирования токена через некоторое время.

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

введите здесь описание изображения

Итак, если epoch и time установлены по умолчанию, step можно использовать для определения времени действия токена в секундах. Вы использовали step : 100. Вот почему ваш токен стал недействительным через 100 секунд. Таким образом, если вы увеличите время step, срок действия токена может быть увеличен.

Примечание. Время указано в секундах.

Надеюсь это поможет. или для запросов комментарий.

person xangy    schedule 25.04.2016
comment
он не длится 100 секунд. Он становится недействительным до истечения 100 секунд; я думаю 10-20 секунд - person Rayees; 03.05.2016