Javascript expressjs中的一次性密码生成
我正在尝试使用speakeasy在express js中生成OTP 这是我尝试过的示例代码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,
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)`