====== 리캡차 V2 가이드 ====== 이 화면은구글 reCAPTCHA 제공하는 라이브러리를 이용한 샘플 화면이다. 구글 reCAPTCHA 키 만들기: https://cloud.google.com/recaptcha-enterprise/docs/create-key-website?hl=ko 구글 reCAPTCHA v2 가이드 : https://developers.google.com/recaptcha/docs/display?hl=ko ===== 예시 ===== 템플릿 위치: /HTML5/OSS/recaptcha_v2 템플릿 파일 * [[xf5projecthome>template/screen/HTML5/OSS/recaptcha_v2.xml|recaptcha_v2.xml]] * [[xf5projecthome>template/screen/HTML5/OSS/recaptcha_v2.js|recaptcha_v2.js]] * [[xf5projecthome>template/template.html?xframe_screen_url=/HTML5/OSS/recaptcha_v2|새창으로 실행]] echo ''; echo ''; echo ''; ==== 화면 스크립트 ==== // 참고사이트 // 구글 reCAPTCHA 키 만들기 : https://cloud.google.com/recaptcha-enterprise/docs/create-key-website?hl=ko // reCAPTCHA v2 가이드 : https://developers.google.com/recaptcha/docs/display?hl=ko function btnLoadRecaptcha_on_mouseup(objInst) { // 비동기 방식으로 로드 및 onload 처리 한다. screen.loadjs("https://www.google.com/recaptcha/api.js", "recaptcha_onload", 1, false); } // screen.loadjs 콜백 함수 function recaptcha_onload(strUrl, bSuccess) { factory.consoleprint("URL: " + strUrl); if (bSuccess == false) { screen.alert("screen.loadjs fail"); return; } // 로드 완료후에 리차지가 준비할때까지 대기한다. grecaptcha.ready(function () { factory.consoleprint("grecaptcha ready ok"); // 리차지를 만든다. grecaptcha.render(this.div_recaptcha.getdomid(), { "sitekey" : "6Lfohl8pAAAAAKhwy8CnVsbFyDpR2o9bPlI2NSno", "callback" : function (response) { // 인증성공시에 factory.consoleprint("grecaptcha ok"); alert(response); }, "expired-callback" : function (response) { // 인증만료시에 factory.consoleprint("grecaptcha expired"); alert("인증만료: " + response); }, "error-callback" : function (response) { factory.consoleprint("grecaptcha 오류 발생"); alert("grecaptcha 오류 발생"); }, "theme" : "light" }); }); } function btnreset_on_mouseup(objInst) { grecaptcha.reset(); }