휴대폰 본인인증 후 이름, 전화번호 값 리턴

휴대폰 본인인증 후 이름, 전화번호 값 리턴

QA

휴대폰 본인인증 후 이름, 전화번호 값 리턴

본문

KCP PASS를 사용중입니다

 

휴대폰 본인인증 성공 후에 자동으로 register.form.skin.php 에
이름, 전화번호, 인증값을 뿌리고 싶습니다... 받아오는 방법이 있을까요?

 

지금 오류 부분이 회원가입 하려고 하면 
휴대폰 본인인증하잖아요?
휴대폰 본인인증을하면 본인인증이 완료되었습니다 하면서 이름하고 전화번호를 폼에 뿌려줘야 하는데...

본인인증은 완료되었다고 하는데 이름, 전화번호도 폼에 안뿌려줄 뿐만아니라 직접 입력하고 가입하려고 해도 본인인증 확인 후 하라고 되어있네요...

 

지금까지 분석해본건


<?php
                if($config['cf_cert_use']) {
                    if($config['cf_cert_ipin'])
                        echo '<button type="button" id="win_ipin_cert" class="btn_frmline">아이핀 본인확인</button>'.PHP_EOL;
                    if($config['cf_cert_hp'])
                        echo '<button type="button" id="win_hp_cert" class="btn_frmline">휴대폰 본인확인</button>'.PHP_EOL;
                    echo '<noscript>본인확인을 위해서는 자바스크립트 사용이 가능해야합니다.</noscript>'.PHP_EOL;
                }
                ?>

 

여기에 win_hp_cert 클릭시에 kcpcert_form으로 넘어가고 kcpcert_form에서는 또 kcpcert_result.php로 넘어가서


<script>
$(function() {
    var $opener;
    var is_mobile = false;
    
    if( ( navigator.userAgent.indexOf("Android") > - 1 || navigator.userAgent.indexOf("iPhone") > - 1 ) ) { // 스마트폰인 경우
        $opener = window.parent;
        is_mobile = true;
    } else {
        $opener = window.opener;
    }
   
    try{ 
        if(opener.origin == '[홈페이지주소]') {
            // up_hash 검증
            if( document.form_auth.up_hash.value != $opener.$("input[name=veri_up_hash]").val() ) {
                alert("up_hash 변조 위험있음");
            }
        
            // 인증정보
            $opener.$("input[name=cert_type]").val("<?php echo $cert_type; ?>");
            $opener.$("input[name=mb_name]").val("<?php echo $user_name; ?>").attr("readonly", true);
            $opener.$("input[name=mb_hp]").val("<?php echo $phone_no; ?>").attr("readonly", true);
            $opener.$("input[name=mb_birth]").val("<?php echo $birth_day; ?>").attr("readonly", true);
            $opener.$("input[name=cert_no]").val("<?php echo $md5_cert_no; ?>");
        
            if(is_mobile) {
                $opener.$("#cert_info").css("display", "");
                $opener.$("#kcp_cert" ).css("display", "none");
            }
        
            alert("본인의 휴대폰번호로 확인 되었습니다.");
        } 
    } catch(e) {
        window.opener.postMessage({ type:'result', username: '<?php echo $user_name; ?>', birth: '<?php echo add_hyphen_date($birth_day); ?>', phone: '<?php echo $phone_no; ?>' }, '*');
        alert("본인의 휴대폰번호로 확인 되었습니다2.");
    }
    window.close();
});
</script>

이 부분에서 하는거 같은데...

 

어떻게 해야 할까요?

 


 

이 질문에 댓글 쓰기 :

답변 2

window.close(); 가 작동하면서 인증 창이 닫히고 인증 시도를 했던 부모 페이지로 인증 결과 값이 제대로 들어오는지부터 확인 해보셔야 합니다.

부모 페이지쪽 코드를 보시면 인증 결과 값을 받아서 폼에 입력해주는 코드가 아마 있을텐데, 그 부분을 좀 수정해서 값이 제대로 들어오는지 로그를 찍어서 보시고 어느쪽에 문제가 있는지부터 우선 체크해보세요

찾아보니까 try문 다음에 있는 if(opener.origin == '[주소]') 부분에서

http://... 이렇게 되어 있어서 그랬던거더라구요. 
try문 직전에 alert('opener.origin'); 찍어봤는데 https://... 이렇게 되어 있어서 혹시나 하는 마음에

if(opener.origin == '[주소]')에 https 넣어줬더니 해결되었네요

근데 이거 주소를 하드코딩하는 방법 외에는 없나요?
if(opener.origin == '[주소]') 에 주소를 지금 하드코딩 되어 있는데 저거를 <?php echo G5_URL  ?> 이런식으로 바꾸는건 힘들겠죠?

 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,592 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT