Google 2 팩터 인증을 실험과 마찬가지로 실제 실제 이유가 없도록 만들려고합니다. 나는 두 개의 매개 변수, $ 사용자 이름과 $ 비밀Google 2 팩터 인증 QR 코드 문제
$qrcode_url = "https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/{$username}%3Fsecret%3D{$secret}";
이 올바르게 빌드를 가지고 함수를 통해 QR 코드 URL을 구축 here
: 나는에서 제공되는 코드를 사용하고
URL.
$username
매개 변수는 사용자가 로그인되고있다.
$secret
매개 변수 내가 QR 코드를 요청하는 페이지를로드 Google2FA::generate_secret_key()
그러나
에 의해 생성되고, 구글은 '당신의 클라이언트가 발행 한 선언 기형의 또는 불법적 인 요청 '이라고 주장했다. 이것은 성가신 곳입니다. 주소 표시 줄을 클릭하고 요청을 다시 보내면 정확한 OTP (일회용 암호)를 제공하는 QR 코드가로드됩니다. 그런 다음 QR 코드가있는 페이지를 다시로드하면 올바르게로드됩니다.
이 문제의 원인은 무엇입니까? XAMPP에서 로컬로 실행하고 있다는 사실과 관련이 없습니다. 그렇습니까?
미리 감사드립니다. :]
EDIT : 내가 알기로는 캐시 문제라고 생각하지 않습니다.
'$ qrcode_url'이 (가) 데이터와 함께 표시되는 것을 보여줄 수 있습니까? 일부 값을 올바르게 URL 인코딩하지 않은 것 같습니다. – Brad
@Brad 물론 결과는'https : //www.google.com/chart? chs = 200x200 & chld = M | 0 & cht = qr & chl = otpauth : // totp/azirius % 3Fsecret % 3DN6UHNH4XSETY6URO'입니다. 'chl' 매개 변수 값과 다른 인코딩 조합을 인코딩했습니다. 이것이 저의 첫 번째 생각이었습니다. – Azirius
모든 매개 변수를'url_encode()해야합니다. 'chl'값은 'otpauth % 3A % 2F % 2Ftotp % 2Fazi % E2 % 80 % 8C % E2 % 80 % 8Brius % 253Fsecret % 253DN6UHNH4XSETY6URO'이어야합니다. – Brad