これがqrコードを生成する際の私のコードです
public function getUrl($user, $hostname, $secret) {
$encoder = "https://chart.googleapis.com/chart?chs=200x200&chld=M%70&cht=qr&chl=";
$encoderURL = sprintf( "%sotpauth://totp/%s@%s",$encoder, $user, $hostname);
$finalEncodorURL = $encoderURL . "%26secret=". urlencode($secret);
return $finalEncodorURL;
}
おそらく、これによりqrコードが生成されますが、実際に生成されます。しかし、Google認証アプリを使用してこのコードをスキャンすると、エラーが発生します
The barcode 'otpauth://totp/user4@noemail.com&secret=UOPKN6QFW3J6PW74' is not a valid authentication barcode.
しかし、秘密鍵を使用して「手動で入力」すると機能し、生成された鍵を使用して問題なくログインできます。
インターネットで、データを urlencode する必要があると言っているのを見つけましたが、それでも機能しません。
上記の関数によって生成されたサンプル URL は次のとおりです。
https://chart.googleapis.com/chart?chs=200x200&chld=M%70&cht=qr&chl=otpauth://totp/user4@noemail.com%26secret=UOPKN6QFW3J6PW74
私は何かを見逃していますか、それとも何か間違っていましたか?