我正在使用以下库来实现两因素身份验证:
https://github.com/speakeasyjs/speakeasy
该库产生以下QR码:
当我在Google Authenticator和Duo中扫描代码时,两个应用程序都会产生不同的令牌。
speakeasy库仅将Google Authenticator令牌识别为有效。
为什么相同的QR码在两个不同的应用程序中产生不同的令牌?
答案 0 :(得分:1)
我没有研究Speakeasy及其工作方式,但查看QR码及其编码的URL可以说明几件事。 URL中的算法说它是SHA256,但是我相信Google Authenticator only supports SHA1是算法。因此,URL可能在说一件事,而应用程序在做另一件事。
奇怪的是,身份验证器正在工作,而Duo无法工作,而在这种情况下,我认为情况恰恰相反。
此外,Google Authenticator希望该机密会以base32进行编码。我没用过Duo,但这也许也引起了困难。
抱歉,这不是一个很好的答案,但是它可能会为您提供一些指导,以测试发生的事情。