问题标签 [speakeasy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
609 浏览

javascript - 生成可重复使用的测试二维码

我正在使用这个库进行 2 因素身份验证:https ://github.com/speakeasyjs/speakeasy

我正在使用这个二维码库:https ://www.npmjs.com/package/qrcode

在开发模式下,我使用测试用户为数据库播种。但是我在一个团队中,现在 2FA 已经实现,人们需要传入 2FA 令牌才能使用该用户登录。有没有办法为这个测试用户生成一个二维码,团队中的每个人都可以重复使用?这样,他们只需将其扫描到手机中并使用令牌。

我尝试了一种天真的方式:我生成了一个二维码,将其保存为图像,并将其放入 README 中。它对我来说很好,但是当其他人尝试扫描它时,它会在 google auth 中显示“无效条形码”。令人困惑的是我可以从谷歌身份验证中删除它并再次扫描它而不会出现问题,即使没有其他人可以。我认为这意味着 QR 码只能由一台设备使用?

如果您处于开发模式,我只能说您不必使用 2FA,但我真的不喜欢这条路线:这是一个等待发生的安全漏洞。有人可能会意外以开发模式启动 prod。

这是我的代码:


更新:Android 手机似乎能够很好地读取 QR 码。是iphone不能。

0 投票
2 回答
426 浏览

react-native - 尝试使用 react-native 项目中的 Speakeasy 时出错

错误:捆绑失败:“无法crypto从 以下位置解析模块myproject/node_modules/speakeasy/index.js:模块映射中不存在模块\n\n这可能与 https://github.com/facebook/react-native/issues/4968有关\n要解决,请尝试以下:\n 1. 清除守望者手表:watchman watch-del-all.\n 2. 删除node_modules文件夹:rm -rf node_modules && npm install.\n 3. 重置打包程序缓存:rm -fr $TMPDIR/react-*npm start -- --reset-cache。”

遵循建议的步骤似乎没有任何好处。

也尝试过,yarn add react-native-crypto但这也无济于事。

0 投票
1 回答
2848 浏览

javascript - 使用Speakeasy在nodejs中生成OTP:设置到期时间

我正在使用https://www.npmjs.com/package/speakeasy生成 OTP,我希望有效期为 10 分钟。

这是生成的代码

验证一次性密码

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

0 投票
1 回答
1776 浏览

javascript - _http_outgoing.js:470 抛出新的 ERR_HTTP_HEADERS_SENT('set'); 错误:将标头发送到客户端后无法设置标头:Nodejs Web 应用程序

Users.js 中的代码在以下代码段中出现错误:qrcode.toDataURL(secret.otpauth_url, (err, data_url) => {

我尝试添加 return 语句以确保我不会多次发送响应。我可以看到在线转换为图像时的 data_url 向我显示了一个 QR 码,但是当我使用 Postman 时我看不到它。

0 投票
1 回答
150 浏览

javascript - 使用 totp 进行身份验证和重定向(speakeasy)

我用 SpeakEasy 做了一个 TOTP(基于时间的唯一密码),一切正常,我设置了一个条件(在代码末尾)来验证令牌,然后将其重定向到隐藏页面,但它不起作用,并且我不知道为什么。感谢您的帮助

意见/验证.ejs

意见/hidden.ejs

<h1>Hidden Page</h1>

应用程序.js

变量“有效”是一个布尔值

0 投票
1 回答
198 浏览

javascript - 有没有办法增加 Speakeasy 的令牌过期时间

目前我正在使用 Speakeasy 为两因素身份验证生成 OTP。

我正在使用它生成令牌。它的到期时间是30s。

有谁知道怎么增加吗?

我试过这个。但是在验证令牌时它总是返回 true。

0 投票
0 回答
42 浏览

speakeasy - TOTP 验证失败

为什么有时即使秘密和令牌匹配,speakeasy.totp.verify() 方法也会返回 false。

谁能告诉我我使用它的方式是否有任何问题?

下面是我创建令牌和验证令牌的实现

0 投票
1 回答
55 浏览

node.js - 如何从 Node js 获取 qrcode 的图像 src。反应 js

我正在使用 React Js 创建一个二维码。和节点 js。我在节点 js 中动态获取 qrcode 数据,并希望将 qrcode 数据作为 src 输入到 React Js 中的 img 标签中。我怎样才能做到这一点 ?

0 投票
0 回答
91 浏览

authentication - speakeasy:speakeasy.totp.verify() 返回 false

我正在使用 2fa 生成访问令牌,然后将 base32 temp_secret 与实际的 sic 数字令牌一起存储在数据库中:

当我尝试使用文档中的 speakeasy.totp.verify() 验证令牌时,我得到了错误:

这是我的项目中的内容:

我正在测试的令牌是我存储在数据库中的令牌但是我得到错误的意思是令牌不正确

0 投票
0 回答
31 浏览

javascript - 使用 html 和 javascript 进行 2fa 身份验证

嘿,我想检查文本字段中的密钥是否与 qrCode 中的手机相同。但是有些东西不起作用。在上面的两个函数中,我正在生成一个二维码并尝试检查输入字段值是否与手机上的代码相同。但是经过验证的返回总是错误的。谁能帮我?