2017-04-12 6 views
0

私はspeakeasy https://www.npmjs.com/package/speakeasyを使ってexpress jでOTPを生成しようとしています。ここでexpress jsでワンタイムパスワードを生成

は、トークンconsole.log(verified)は常にfalseを返し確認したとき、私は

var speakeasy = require('speakeasy'); 
     var secret = speakeasy.generateSecret({length:32}); 

     //generate token 
     var code = speakeasy.totp({ 
      secret:secret.base32, 
      encoding: 'base32', 
      step:300, 
      window:100, 
      counter:123 
     }); 

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

を試してみたサンプル・コードです。

私はこのgithubのリンクhttps://github.com/speakeasyjs/speakeasy/issues/52をたどってきましたが、それは私がおよそspeakeasyを知らない

+0

これはデモです。これをチェックアウトすると、https://sedemo-mktb.rhcloud.com/ –

+0

同じコードが使用されていますが、検証結果は偽を返します – Jabaa

+0

'window:2'を追加しようとしましたか?オプションを 'verify'関数に渡します。 –

答えて

2

を助けにはならなかったが、我々は成功し、我々はExpressで使用してワンタイムパスワードを生成するために、私たちのプロジェクトでnotpを使用しましたhttps://www.npmjs.com/package/notp

+0

コードサンプルで更新してください。文書に十分な情報がありません – Jabaa

+0

今はサンプルがありますが、トークンの有効期限を長くする方法はありますか? – Jabaa

+0

ここで 'opt'設定オブジェクトを見てください:[link](https://github.com/guyht/notp#totpverifytoken-key-opt) ' '{notp'から{totp}をインポートします。 const code = totp.gen(user.oathKey、otpOptions); const isCodeValid = totp.verify(code、user.oathKey、otpOptions); ' –

関連する問題