2017-05-02 1 views
0

Je suis sur le point d'introduire 2FA et d'utiliser QRcode.js pour générer un code QR à partir de la clé secrète pour être scanné par les applications 2FA.paramètres pour faire un code QR qu'Authy comprend

$('#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 et Authy semblent être très sélectifs là-bas; ils rejettent le code en disant "Le code QR est invalide" ou similaire. Lorsque j'utilise un lecteur QR approprié pour scanner le même QR, la clé de l'URL (otpauth://totp/[email protected]?secret=secretkey ou otpauth://totp/sitename?secret=secretkey ou otpauth://totp/[email protected]?secret=secretkey&digits=6&issuer=SiteName&period=30) s'affiche correctement.

La recherche du numéro n'a donné aucun résultat. Est-ce que quelqu'un peut me dire quels paramètres je devrais utiliser pour générer mon QR ou dois-je expérimenter?

Je suppose qu'il n'y a pas d'erreur dans l'URL?

+0

Avez-vous url_encoded vos données avant de les inclure dans votre QRcode? Pouvez-vous nous montrer le code que vous avez utilisé avec QRcode.js? – Veve

+0

@Veve a ajouté 'encodeURI' à la génération QR, mais cela n'a pas aidé. Va ajouter mon JS dans un instant. – Titus

+0

@Veve Merci. Le problème était que j'ai créé le QR de la clé seulement, pas l'URL. – Titus

Répondre

1

Le problème était dans mon code en effet: j'ai créé le QR à partir de la clé, pas de l'URL complète:

$('#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); 
+0

@Veve j'accepterai cela dans deux jours; ne peut être fait plus tôt. Je ne savais pas qu'il continuerait à apparaître après avoir été supprimé. – Titus