diff --git a/auth/totp_qrcode_svg.py b/auth/totp_qrcode_svg.py index e4f684d9..337ab2a0 100644 --- a/auth/totp_qrcode_svg.py +++ b/auth/totp_qrcode_svg.py @@ -11,11 +11,23 @@ def totp_provisioning_uri(secret, email): def totp_qrcode_svg(secret, email): """SVG (pas PNG) : la variante "image factory" par défaut de qrcode a - besoin de Pillow pour produire un PNG — SvgImage, elle, est du pur + besoin de Pillow pour produire un PNG — SvgPathImage, elle, est du pur Python, sans dépendance supplémentaire à installer juste pour un QR - code affiché une seule fois par compte, à l'inscription.""" + code affiché une seule fois par compte, à l'inscription. SvgPathImage + précisément (pas le simple SvgImage) : c'est la seule des deux variantes + dont le racine porte un attribut viewBox — sans lui, la règle CSS + qui fait tenir le QR code dans son cadre (.totpQrWrap svg { width:100% }) + n'a rien à quoi se raccorder pour mettre à l'échelle le dessin interne + (en mm) : le QR code restait invisible/coupé au lieu de s'afficher. + + qrcode.make() préfixe toujours sa sortie d'une déclaration XML + ("") — valide pour un fichier .svg autonome, mais + invalide au milieu d'un document HTML : certains navigateurs + n'affichent alors rien du tout à partir de ce point. On ne garde donc + que ce qui commence à "