From cbd9fc4a86495206acc42bd74f71883117233b4d Mon Sep 17 00:00:00 2001 From: projectSylas Date: Wed, 6 Oct 2021 08:10:45 +0000 Subject: [PATCH] =?UTF-8?q?=ED=86=B5=ED=95=A9=EC=9D=B8=EC=A6=9D=20:=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common.php | 2 +- config.php | 1 - plugin/kgcert/kg_find_result.php | 106 +++++++++++----------- plugin/kgcert/kg_request.php | 146 +++++++++++++++---------------- plugin/kgcert/kg_result.php | 146 +++++++++++++++---------------- 5 files changed, 200 insertions(+), 201 deletions(-) diff --git a/common.php b/common.php index c5a48dcd7..0030015c3 100644 --- a/common.php +++ b/common.php @@ -795,7 +795,7 @@ if(!empty($extend_file) && is_array($extend_file)) { } unset($extend_file); -if(!$is_admin && $is_member && (!defined("G5_CERT_IN_PROG") || !G5_CERT_IN_PROG) && $config['cf_cert_use'] <> 0 && $config['cf_cert_req']) { // 본인인증이 필수일때 +if($is_member && !$is_admin && (!defined("G5_CERT_IN_PROG") || !G5_CERT_IN_PROG) && $config['cf_cert_use'] <> 0 && $config['cf_cert_req']) { // 본인인증이 필수일때 if ((empty($member['mb_certify']) || (!empty($member['mb_certify']) && strlen($member['mb_dupinfo']) == 64))) { // di로 인증되어 있거나 본인인증이 안된 계정일때 goto_url(G5_BBS_URL."/member_cert_refresh.php"); } diff --git a/config.php b/config.php index 24ab316bf..760110999 100644 --- a/config.php +++ b/config.php @@ -135,7 +135,6 @@ define('G5_PHPMAILER_PATH', G5_PLUGIN_PATH.'/'.G5_PHPMAILER_DIR); //------------------------------------------------------------------------------ define('G5_SET_DEVICE', 'both'); -// define('G5_CERT_IN_PROG', false); // 재인증페이지 리디렉션 사용여부 define('G5_USE_MOBILE', true); // 모바일 홈페이지를 사용하지 않을 경우 false 로 설정 define('G5_USE_CACHE', true); // 최신글등에 cache 기능 사용 여부 diff --git a/plugin/kgcert/kg_find_result.php b/plugin/kgcert/kg_find_result.php index 864e6e9ca..7a0eb1c2f 100644 --- a/plugin/kgcert/kg_find_result.php +++ b/plugin/kgcert/kg_find_result.php @@ -1,71 +1,71 @@ $mid, + 'txId' => $txId + ); + + $post_data = json_encode($data); + + // curl 통신 시작 + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $_POST["authRequestUrl"]); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); + curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json')); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); - if ($_POST["resultCode"] === "0000") { + $response = curl_exec($ch); + curl_close($ch); + $res_data = json_decode($response, true); - $data = array( - 'mid' => $mid, - 'txId' => $txId - ); + if($res_data['resultCode'] === "0000") { - $post_data = json_encode($data); + @insert_cert_history($member['mb_id'], 'kg', 'sa'); // 인증성공 시 내역 기록 - // curl 통신 시작 - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $_POST["authRequestUrl"]); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); - curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); - curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json')); - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + $cert_type = 'sa'; // 인증타입 + $cert_no = $res_data['txId']; // 이니시스 트랜잭션 ID + $phone_no = $res_data['userPhone']; // 전화번호 + $user_name = $res_data['userName']; // 이름 + $birth_day = $res_data['userBirthday']; // 생년월일 + $ci = $res_data['userCi']; // CI - $response = curl_exec($ch); - curl_close($ch); - $res_data = json_decode($response, true); + if(!$phone_no) + alert_close("정상적인 인증이 아닙니다. 올바른 방법으로 이용해 주세요."); - if($res_data['resultCode'] === "0000") { + $md5_ci = md5($ci . $ci); + $phone_no = hyphen_hp_number($phone_no); + $mb_dupinfo = $md5_ci; - @insert_cert_history('@password_lost@', 'kg', 'sa'); // 인증성공 시 내역 기록 - - $cert_type = 'sa'; // 인증타입 - $cert_no = $res_data['txId']; // 이니시스 트랜잭션 ID - $phone_no = $res_data['userPhone']; // 전화번호 - $user_name = $res_data['userName']; // 이름 - $birth_day = $res_data['userBirthday']; // 생년월일 - $ci = $res_data['userCi']; // CI - - if(!$phone_no) - alert_close("정상적인 인증이 아닙니다. 올바른 방법으로 이용해 주세요."); - - $md5_ci = md5($ci . $ci); - $phone_no = hyphen_hp_number($phone_no); - $mb_dupinfo = $md5_ci; - - $row = sql_fetch("select mb_id from {$g5['member_table']} where mb_id <> '{$member['mb_id']}' and mb_dupinfo = '{$mb_dupinfo}'"); // ci데이터로 찾음 - if(empty($row['mb_id'])) { // ci로 등록된 계정이 없다면 - alert_close("인증하신 정보로 가입된 회원정보가 없습니다."); - exit; - } - } else { - // 인증실패 curl의 인증실패 체크 - alert_close('코드 : '.$res_data['resultCode'].' '.urldecode($res_data['resultMsg'])); - exit; + $row = sql_fetch("select mb_id from {$g5['member_table']} where mb_id <> '{$member['mb_id']}' and mb_dupinfo = '{$mb_dupinfo}'"); // ci데이터로 찾음 + if(empty($row['mb_id'])) { // ci로 등록된 계정이 없다면 + alert_close("인증하신 정보로 가입된 회원정보가 없습니다."); + exit; } - } else { // resultCode===0000 아닐경우 아래 인증 실패를 출력함 - // 인증실패 - alert_close('코드 : '.$_POST['resultCode'].' '.urldecode($_POST['resultMsg'])); + } else { + // 인증실패 curl의 인증실패 체크 + alert_close('코드 : '.$res_data['resultCode'].' '.urldecode($res_data['resultMsg'])); exit; } +} else { // resultCode===0000 아닐경우 아래 인증 실패를 출력함 + // 인증실패 + alert_close('코드 : '.$_POST['resultCode'].' '.urldecode($_POST['resultMsg'])); + exit; +} - $g5['title'] = 'KG이니시스 통합인증 결과'; - include_once(G5_PATH.'/head.sub.php'); +$g5['title'] = 'KG이니시스 통합인증 결과'; +include_once(G5_PATH.'/head.sub.php'); ?>
- "> +">
+ + + + + $mid, - 'txId' => $txId - ); + $data = array( + 'mid' => $mid, + 'txId' => $txId + ); - $post_data = json_encode($data); + $post_data = json_encode($data); - // curl 통신 시작 - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $_POST["authRequestUrl"]); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); - curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); - curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json')); - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + // curl 통신 시작 + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $_POST["authRequestUrl"]); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); + curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json')); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + + $response = curl_exec($ch); + curl_close($ch); + $res_data = json_decode($response, true); + // -------------------- 결과 수신 ------------------------------------------- + // echo '<결과내역>'." '{$mid}'

"; + // echo $response; + + if($res_data['resultCode'] === "0000") { + + @insert_cert_history($member['mb_id'], 'kg', 'sa'); // 인증성공 시 내역 기록 + + $cert_type = 'sa'; // 인증타입 + $cert_no = $res_data['txId']; // 이니시스 트랜잭션 ID + $phone_no = $res_data['userPhone']; // 전화번호 + $user_name = $res_data['userName']; // 이름 + $birth_day = $res_data['userBirthday']; // 생년월일 + $ci = $res_data['userCi']; // CI - $response = curl_exec($ch); - curl_close($ch); - $res_data = json_decode($response, true); - // -------------------- 결과 수신 ------------------------------------------- - // echo '<결과내역>'." '{$mid}'

"; - // echo $response; + if(!$phone_no) + alert_close("정상적인 인증이 아닙니다. 올바른 방법으로 이용해 주세요."); - if($res_data['resultCode'] === "0000") { + $md5_ci = md5($ci . $ci); + $phone_no = hyphen_hp_number($phone_no); + $mb_dupinfo = $md5_ci; - @insert_cert_history($member['mb_id'], 'kg', 'sa'); // 인증성공 시 내역 기록 - - $cert_type = 'sa'; // 인증타입 - $cert_no = $res_data['txId']; // 이니시스 트랜잭션 ID - $phone_no = $res_data['userPhone']; // 전화번호 - $user_name = $res_data['userName']; // 이름 - $birth_day = $res_data['userBirthday']; // 생년월일 - $ci = $res_data['userCi']; // CI - - if(!$phone_no) - alert_close("정상적인 인증이 아닙니다. 올바른 방법으로 이용해 주세요."); - - $md5_ci = md5($ci . $ci); - $phone_no = hyphen_hp_number($phone_no); - $mb_dupinfo = $md5_ci; - - $sql = " select mb_id from {$g5['member_table']} where mb_id <> '{$member['mb_id']}' and mb_dupinfo = '{$mb_dupinfo}' "; - $row = sql_fetch($sql); - if (!empty($row['mb_id'])) { - alert_close("입력하신 본인확인 정보로 가입된 내역이 존재합니다.\\n회원아이디 : ".$row['mb_id']); - } - - // hash 데이터 - - $md5_cert_no = md5($cert_no); - $hash_data = md5($user_name.$cert_type.$birth_day.$md5_cert_no); - - // 성인인증결과 - $adult_day = date("Ymd", strtotime("-19 years", G5_SERVER_TIME)); - $adult = ((int)$birth_day <= (int)$adult_day) ? 1 : 0; - - set_session("ss_cert_type", $cert_type); - set_session("ss_cert_no", $md5_cert_no); - set_session("ss_cert_hash", $hash_data); - set_session("ss_cert_adult", $adult); - set_session("ss_cert_birth", $birth_day); - //set_session("ss_cert_sex", ($sex_code=="01"?"M":"F")); // 이니시스 통합인증은 성별정보 리턴 없음 - set_session('ss_cert_dupinfo', $mb_dupinfo); - - } else { - // 인증실패 curl의 인증실패 체크 - alert_close('코드 : '.$res_data['resultCode'].' '.urldecode($res_data['resultMsg'])); - exit; + $sql = " select mb_id from {$g5['member_table']} where mb_id <> '{$member['mb_id']}' and mb_dupinfo = '{$mb_dupinfo}' "; + $row = sql_fetch($sql); + if (!empty($row['mb_id'])) { + alert_close("입력하신 본인확인 정보로 가입된 내역이 존재합니다.\\n회원아이디 : ".$row['mb_id']); } - } else { // resultCode===0000 아닐경우 아래 인증 실패를 출력함 - // 인증실패 - alert_close('코드 : '.$_POST['resultCode'].' '.urldecode($_POST['resultMsg'])); + + // hash 데이터 + + $md5_cert_no = md5($cert_no); + $hash_data = md5($user_name.$cert_type.$birth_day.$md5_cert_no); + + // 성인인증결과 + $adult_day = date("Ymd", strtotime("-19 years", G5_SERVER_TIME)); + $adult = ((int)$birth_day <= (int)$adult_day) ? 1 : 0; + + set_session("ss_cert_type", $cert_type); + set_session("ss_cert_no", $md5_cert_no); + set_session("ss_cert_hash", $hash_data); + set_session("ss_cert_adult", $adult); + set_session("ss_cert_birth", $birth_day); + //set_session("ss_cert_sex", ($sex_code=="01"?"M":"F")); // 이니시스 통합인증은 성별정보 리턴 없음 + set_session('ss_cert_dupinfo', $mb_dupinfo); + + } else { + // 인증실패 curl의 인증실패 체크 + alert_close('코드 : '.$res_data['resultCode'].' '.urldecode($res_data['resultMsg'])); exit; } +} else { // resultCode===0000 아닐경우 아래 인증 실패를 출력함 + // 인증실패 + alert_close('코드 : '.$_POST['resultCode'].' '.urldecode($_POST['resultMsg'])); + exit; +} - $g5['title'] = 'KG이니시스 통합인증 결과'; - include_once(G5_PATH.'/head.sub.php'); +$g5['title'] = 'KG이니시스 통합인증 결과'; +include_once(G5_PATH.'/head.sub.php'); ?>