Thursday, 11 May 2017

Nodejs :one time password generation with speakeasy package

I've a strange problem with speakeasy OTP verifcation and the OTP should be expired after 2 minutes.

Generate token

var secret = speakeasy.generateSecret({length: 20}).base32;

        var token = speakeasy.totp({
            secret: secret.base32,
            encoding: 'base32',
            time:120
        });

Verify token

 var verified = speakeasy.totp.verify({
            secret:req.params.secret,
            encoding: 'base32',
            token: req.params.token,
            time:120
        });
console.log(verified);

case-1 fixed secret key

when i change secret key to fixed key (ie secret='676FGFG!@$#') OTP is never expired console.log(verified); always returns false

case-2 generate secret key with base32

when i generate secret using base32 (ie secret = secret.base32)OTP is not verified

console.log(verified); always returns true



via Jabaa

No comments:

Post a Comment