我目前正在向rails应用程序添加双因素身份验证。我添加了一个流程,允许用户通过使用二维码来验证自己,从而启用双因素身份验证。我使用的是gem:https://github.com/Houdini/two_factor_authentication,它可以让你生成一个可以转换成二维码的配置uri。然后,用户可以使用Authy或Google authenticator等应用程序对其进行扫描,以获得一次性密码。
我现在需要为此编写测试,因此我需要能够自动化从配置uri获取安全代码的过程,而不需要使用应用程序扫描它。
所以我的问题是:有没有可能通过编程获得通过扫描二维码获得的密钥,如果可能,如何获得?
该应用基于Ruby on rails 5.2。
发布于 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
发布于 2019-09-20 20:20:15
您有两个选择:
对于选项2,您可以使用胡迪尼自己使用的rotp gem和您通过Houdini生成的密钥。
secret_key = user.generate_totp_secret
# then...
totp = ROTP::TOTP.new(secret_key)
totp.now # --> the 6-digit code(您可以看到胡迪尼是如何使用rotp gem here的。)
https://stackoverflow.com/questions/58016576
复制相似问题