首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用QR镜像测试双因素身份验证

如何使用QR镜像测试双因素身份验证
EN

Stack Overflow用户
提问于 2019-09-20 01:55:11
回答 2查看 465关注 0票数 1

我目前正在向rails应用程序添加双因素身份验证。我添加了一个流程,允许用户通过使用二维码来验证自己,从而启用双因素身份验证。我使用的是gem:https://github.com/Houdini/two_factor_authentication,它可以让你生成一个可以转换成二维码的配置uri。然后,用户可以使用Authy或Google authenticator等应用程序对其进行扫描,以获得一次性密码。

我现在需要为此编写测试,因此我需要能够自动化从配置uri获取安全代码的过程,而不需要使用应用程序扫描它。

所以我的问题是:有没有可能通过编程获得通过扫描二维码获得的密钥,如果可能,如何获得?

该应用基于Ruby on rails 5.2。

EN

回答 2

Stack Overflow用户

发布于 2019-09-20 17:04:00

当你想要测试一个特定gem的特性时,在大多数情况下,你可以在原始的repo中找到一些线索。流行的gem通常都经过了良好的测试。看看这里,https://github.com/Houdini/two_factor_authentication/blob/master/spec/lib/two_factor_authentication/models/two_factor_authenticatable_spec.rb#L182

票数 0
EN

Stack Overflow用户

发布于 2019-09-20 20:20:15

您有两个选择:

  1. 找到了一种在Ruby中读取QR的方法。这非常类似于用户必须做的事情,但是可能很难(我不知道--我从来没有做过)。
  2. 自己生成6位数的代码( "TOTP代码“)。这感觉有点老生常谈(我想,还深入到了一些实现细节),但比选项1更容易做到。

对于选项2,您可以使用胡迪尼自己使用的rotp gem和您通过Houdini生成的密钥。

代码语言:javascript
复制
secret_key = user.generate_totp_secret

# then...

totp = ROTP::TOTP.new(secret_key)
totp.now # --> the 6-digit code

(您可以看到胡迪尼是如何使用rotp gem here的。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58016576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档