Estoy tratando de generar OTP en express js usando speakeasy https://www.npmjs.com/package/speakeasy .
Aquí está el código de muestra que he probado
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 }); Cuando verifique el token console.log(verified) siempre devuelva falso.
Seguí este enlace de github https://github.com/speakeasyjs/speakeasy/issues/52 pero no ayudó
No sé sobre speakeasy , pero hemos usado notp con éxito en nuestro proyecto para generar contraseñas de un solo uso que usamos con Express, tal vez esto podría ayudar: https://www.npmjs.com/package/notp
module.exports = (num = 4) => { return Math.random().toFixed(num).substr(`-${num}`) }Fiscalía: 9749
Agregue el valor del step dado al generar el token para verificar.
var verified = speakeasy.totp.verify({ secret:secret.base32 , encoding: 'base32', token: code, step: 300 });