2017-12-08 12 views
0

私の目的は1時間(3600秒)後にトークンを期限切れにすることです。 nodejs speakeasyで試行している間、トークンはそれ以前に無効になっています。以下のログは、「1分、10分、60分」、1分前に無効化されたmucheを取得するログです。矛盾した結果が出ている時間の最大値。nodejs speakeasyライブラリを使用してトークンが無効になっています

部分のコードスニペット

let secret = speakeasy.generateSecret({ 
length: 10 
}); 
let seconds= 3600; //1Hr 

let token = speakeasy.totp({ 
    secret: secret.base32, 
    step: seconds 
}); 

let otp = { 
    "secret": secret.base32.toString(), 
    "token": token 
}; 

function checkOTP(otp) { 
    let verified = speakeasy.totp.verify({ 
    secret: otp.secret, 
    token: otp.token, 
    step: seconds 
}); 
return verified; 
} 

私が何か間違ったことをやっていますか?サンプルスクリプトのコンソールログはほとんどありません。

For 1 minute - Invalidated before 18secs 
[ Fri Dec 08 2017 09:16:18 GMT-0800 (Pacific Standard Time) ](true) 9:16:59 AM 
[ Fri Dec 08 2017 09:16:18 GMT-0800 (Pacific Standard Time) ](false) 9:17:00 AM 

For 10Mins - Invalidated before 7minutes 
[ Fri Dec 08 2017 09:18:28 GMT-0800 (Pacific Standard Time) ](true) 9:19:59 AM 
[ Fri Dec 08 2017 09:18:28 GMT-0800 (Pacific Standard Time) ](true) 9:19:59 AM 
[ Fri Dec 08 2017 09:18:28 GMT-0800 (Pacific Standard Time) ](true) 9:19:59 AM 
[ Fri Dec 08 2017 09:18:28 GMT-0800 (Pacific Standard Time) ](true) 9:19:59 AM 
[ Fri Dec 08 2017 09:18:28 GMT-0800 (Pacific Standard Time) ](false) 9:20:00 AM 

For 1Hr - Invalidated before 7minutes 
[ Fri Dec 08 2017 11:07:01 GMT-0800 (Pacific Standard Time) ](true) 11:56:41 AM 
[ Fri Dec 08 2017 11:07:01 GMT-0800 (Pacific Standard Time) ](true) 11:56:43 AM 
[ Fri Dec 08 2017 11:07:01 GMT-0800 (Pacific Standard Time) ](false) 12:00:37 PM 

上記のウィンドウ内で検証する適切な方法はありますか?

あなた tokenパラメータが間違っているように見えるもぐりのreadmeファイルから

答えて

0

:現在の時刻から2分の検証のために(..)TOTPに秒として120:私はあなたの提案をしようとした時間を追加した

var token = speakeasy.totp({ 
    secret: secret.base32, 
    encoding: 'base32', 
    time: 1453667708 // You have this as 'step' not 'time' 
}); 
+0

結果はありません。次の秒で失敗します。 – amp

関連する問題