Читая документацию, вы можете обнаружить, что базовое значение step
составляет 30 секунд, поэтому, если вы хотите, чтобы время истечения было 10 минут, вам нужно установить значение step
в 60
.Затем, используя метод verifyDelta
, вы сможете проверить, не истек ли токен.
const generateOtp = function generateOtp() {
let token = speakeasy.totp({
secret:process.env.OTP_KEY,
encoding: 'base32',
digits:4,
step: 60,
window:10
});
return token;
}
const verifyOtp = function verifyOtp(token){
let expiry = speakeasy.totp.verifyDelta({
secret:process.env.OTP_KEY,
encoding: 'base32',
token: token,
step: 60,
window:10
});
console.log(expiry)
}