Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript expressjs中的一次性密码生成_Javascript_Mysql_Node.js_Express - Fatal编程技术网

Javascript expressjs中的一次性密码生成

Javascript expressjs中的一次性密码生成,javascript,mysql,node.js,express,Javascript,Mysql,Node.js,Express,我正在尝试使用speakeasy在express js中生成OTP 这是我尝试过的示例代码 var speakeasy = require('speakeasy'); var secret = speakeasy.generateSecret({length:32}); //generate token var code = speakeasy.totp({ secret:secret.base32,

我正在尝试使用speakeasy在express js中生成OTP

这是我尝试过的示例代码

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
        });
验证令牌时,console.log(verified)始终返回false


我关注了这个github链接,但它没有帮助

我不知道
speakeasy
,但是我们在项目中成功地使用了
notp
来生成我们在Express中使用的一次性密码,也许这会有帮助:

我不知道
speakeasy
,但是我们已经在项目中成功地使用了
notp
来生成我们在Express中使用的一次性密码,这可能会有所帮助:

在生成验证令牌时添加
步骤
给定的值

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

为验证生成令牌时,添加
步骤
给定的值

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

应将
计数器=123
添加到验证功能中:

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

应将
计数器=123
添加到验证功能中:

var verified = speakeasy.totp.verify({
      secret: secret.base32,
      encoding: 'base32',
      token: code, 
      counter: 123
});
检察官办公室:9749


OTP:9749

这里是一个演示。。签出此项,使用相同的代码,但验证返回错误。您是否尝试将
窗口:2
选项添加到
验证
函数中。已添加但不起作用这里有一个演示。。签出此,使用相同的代码,但验证返回错误您是否尝试将
window:2
选项添加到
verify
函数中。添加但不起作用能否请您使用代码示例更新,文档没有提供足够的信息我得到了一个工作示例,但是如何增加令牌过期时间呢?看看这里的
opt
config对象:`import{totp}from'notp';const code=totp.gen(user.oathKey,otpOptions);const isCodeValid=totp.verify(代码、user.oathKey、otpOptions)`请用代码示例更新,文档没有提供足够的信息。我有一个工作示例,但是如何增加令牌过期时间请查看这里的
opt
config对象:`import{totp}from'notp';const code=totp.gen(user.oathKey,otpOptions);const isCodeValid=totp.verify(代码、user.oathKey、otpOptions)`