0

我即将介绍 2FA 并使用QRcode.js从密钥生成 QR 码以供 2FA 应用程序扫描。

$('#totpQR').empty();
new QRCode(document.getElementById('totpQR'),secretkey);
$('#totpQRContainer').css('display','inline');
$('#totpQR').attr('title', 'otpauth://totp/'+encodeURIComponent(username)
    + location.hostname.replace(/^(.*\.)?(\b[\w-]+\.[a-z]+)$/, '@$2?secret=')
    + secretkey
);

GoogleAuthenticator 和 Authy 似乎都很挑剔。他们拒绝“二维码无效”或类似的代码。当我使用适当的 QR 阅读器扫描相同的 QR 时,来自 URL(otpauth://totp/username@sitename.tld?secret=secretkeyotpauth://totp/sitename?secret=secretkeyotpauth://totp/username@sitename.tld?secret=secretkey&digits=6&issuer=SiteName&period=30)的密钥是正确的。

谷歌搜索这个问题没有给我任何结果。

谁能告诉我应该使用哪些参数来生成我的 QR 或者我必须进行实验吗?

我猜URL中没有错误?

4

1 回答 1

1

问题确实出在我的代码中:我从密钥创建了 QR,而不是从整个 URL:

$('#totpQR').empty();
var url='otpauth://totp/'+encodeURIComponent(username)
    + location.hostname.replace(/^(.*\.)?(\b[\w-]+\.[a-z]+)$/, '@$2?secret=')
    + secretkey
;
new QRCode(document.getElementById('totpQR'),url);
$('#totpQRContainer').css('display','inline');
$('#totpQR').attr('title',url);
于 2017-05-02T17:51:28.797 回答