我正在尝试在我的网站上使用 Google Authenticator 设置双重身份验证。我能够生成工作代码,但是当我将图像 URL 插入页面时,我在 Chrome 检查器中收到以下错误:
GET https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/MyLabel?secret=THESECRET 400 (Bad Request)
生成二维码的代码:
try
key = crypto.randomBytes(10).toString('hex')
catch error
console.log "error generating code: #{error}"
encoded = base32.encode(key)
label = encodeURIComponent "MyLabel"
uri = "otpauth://totp/#{label}?secret=#{encoded}"
url = "https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=#{uri}"
插入图像的客户端 jQuery:
img = $("<img>").attr("src", url)
$("#qr_box").html("")
$("#qr_box").append(img)
这会在页面上生成以下 HTML:
<img src="https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/MyLabel?secret=THESECRET">
图像可以在新选项卡中打开而没有问题。图像仅在我的页面中成功显示大约 1/10 的时间;其他时候 Chrome 给出 400。我在这里遗漏了一些明显的东西吗?