8

サイトで Google Authenticator を使用して 2 要素認証を設定しようとしています。動作するコードを生成することはできますが、画像の URL をページに挿入すると、Chrome インスペクタに次のエラーが表示されます。

GET https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/MyLabel?secret=THESECRET 400 (Bad Request)

QR コードを生成するコード:

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&amp;chld=M|0&amp;cht=qr&amp;chl=otpauth://totp/MyLabel?secret=THESECRET">

画像は問題なく新しいタブで開くことができます。画像が私のページに正常に表示されるのは約 1/10 の時間だけです。それ以外の場合、Chrome は 400 を返します。ここで明らかな何かが欠けていますか?

4

1 に答える 1

15

私にとっては、https://www.google.comhttps://chart.googleapis.comに変更するとうまくいきました。

于 2013-08-20T10:31:35.323 に答える