Javascript 使用speakeasy在NodeJ中生成OTP:设置到期时间

Javascript 使用speakeasy在NodeJ中生成OTP:设置到期时间,javascript,node.js,express,speakeasy,Javascript,Node.js,Express,Speakeasy,我正在使用生成OTP,我希望到期时间为10分钟 下面是生成的代码 const generateOtp = function generateOtp() { let token = speakeasy.totp({ secret:process.env.OTP_KEY, encoding: 'base32', digits:4, window:10 }); return token; } 验证OTP cons

我正在使用生成OTP,我希望到期时间为10分钟

下面是生成的代码

const generateOtp = function generateOtp() {
    let token = speakeasy.totp({
        secret:process.env.OTP_KEY,
        encoding: 'base32',
        digits:4,
        window:10
    });
    return token;
}
验证OTP

const verifyOtp = function verifyOtp(token){
    let expiry =  speakeasy.totp.verify({
        secret:process.env.OTP_KEY,
        encoding: 'base32',
        token: token,
        window:10
    });
    console.log(expiry)
}

但是我不知道如何将过期时间设置为10分钟???

阅读文档,您会发现基本
步骤是30秒,因此如果您想要10分钟的过期时间,您需要将
步骤设置为
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)
}