用于制作Authy理解的QR码的参数

时间:2017-05-02 13:19:42

标签: qr-code google-authenticator

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

$('#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时,网址(otpauth://totp/username@sitename.tld?secret=secretkeyotpauth://totp/sitename?secret=secretkeyotpauth://totp/username@sitename.tld?secret=secretkey&digits=6&issuer=SiteName&period=30)中的密钥输出正确。

谷歌搜索问题没有给我带来任何结果。

任何人都可以告诉我应该使用哪些参数来生成QR或者我必须进行实验吗?

我猜网址没有错误?

1 个答案:

答案 0 :(得分:1)

问题出在我的代码中:我是从密钥创建的,而不是从整个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);