본인인증 후 비밀번호 변경을 진행하려 합니다.
본문
NHN KCP 본인인증 서비스를 사용하고 있습니다.
비밀번호 변경시 본인인증 후 사용자의 정보를 바탕으로 e-mail 로 비밀번호 변경 URL을 전달하려 합니다. 어떻게 하면 본인인증 서비스를 진행 후 페이지로 전달하는지 잘 모르겠습니다.
제가 생각한 흐름은
워드프레스 로그인페이지
=> 비밀번호 변경 클릭
=> 본인인증서비스 보이기
=> 인증 후 인증된 사용자의 정보(H.P, 이름, 생년월일)을 바탕으로 사용자 확인
=> 확인된 사용자에게 메일 보내기
위의 흐름입니다. 우선은 H.P, 이름, 생년월일을 입력하면 사용자 확인하여 메일 보내는 부분은 코딩해 두었습니다. 본인인증 부분이 막히는데 아래의 어느 부분을 어떻게 활용해야 할지가... 잘 이해가 안됩니다.
확인해보니 register_hook.skin.php 파일 부분의 38번째 줄에
if($config['cf_cert_use']) { //본인확인을 사용한다면
echo '<div class="gc_cert_box">'.PHP_EOL;
if($config['cf_cert_ipin'])
echo '<button type="button" id="win_ipin_cert" class="button btn_frmline">'.__('아이핀 본인확인', GC_NAME).'</button>'.PHP_EOL;
if($config['cf_cert_hp'])
echo '<button type="button" id="win_hp_cert" class="button btn_frmline">'.__('휴대폰 본인확인', GC_NAME).'</button>'.PHP_EOL;
echo '<noscript>'.__('본인확인을 위해서는 자바스크립트 사용이 가능해야합니다.', GC_NAME).'</noscript>'.PHP_EOL;
echo '</div>'.PHP_EOL;
}
$member = gc_get_member(get_current_user_id());
$gc_first_name = ( ! empty( $_POST['gc_first_name'] ) ) ? trim( $_POST['gc_first_name'] ) : '';
$cert_no = isset($_POST['cert_no']) ? sanitize_text_field($_POST['cert_no']) : '';
echo '<input type="hidden" name="cert_type" value="'.$member['mb_certify'].'">';
echo '<input type="hidden" name="cert_no" value="'.$cert_no.'">';
echo '<input type="hidden" name="gc_first_name" value="'.esc_attr(wp_unslash($gc_first_name)).'">';
if ($config['cf_cert_use'] && $member['mb_certify']) {
if($member['mb_certify'] == 'ipin')
$mb_cert = __('아이핀', GC_NAME);
else
$mb_cert = __('휴대폰', GC_NAME);
?>
<div id="msg_certify">
<strong><?php echo $mb_cert;?> <?php _e('본인확인', GC_NAME); ?></strong><?php if ($member['mb_adult']) { ?> 및 <strong>성인인증</strong><?php } ?> 완료
</div>
<?php
}
부분이 확인됩니다. 이 부분을 어떻게 수정하면 본인인증창을 타 페이지에서 띄울 수 있는것인가요?
!-->답변 2
워드프레스 로그인페이지
=> 비밀번호 변경 클릭
=> 확인된 사용자에게 메일 보내기
보통 이 정도의 과정으로도 충분하다고 생각되는데요.( 이메일을 보려면 해당 이메일 회사로 로그인해야 볼수 있으니까요... )
왜 위의 과정에서 본인확인이 필요한지 납득이 가지 않지만,
굳이 해야 한다면 아래 내용을 참고해 주세요.
그누커머스의 본인확인 과정을 설명한다면,
일단 본인 확인을 하면 session에 값이 저장됩니다.
gnucommerce/plug/kcpcert/kcpcert_result.php
의 파일을 보시면,
gc_set_session('ss_cert_dupinfo', $mb_dupinfo);
이란 구문이 있는데요.
$mb_dupinfo 값은 DI 중복가입 확인값 으로 저장이 됩니다. ( 유니크 값 )
그래서 본인확인을 다 하게 되면
gnucommerce/lib/gc_member_page.php 파일에 보시면,
update_user_meta( $user_id, 'mb_dupinfo', gc_get_session('ss_cert_dupinfo') );
유저 메타 테이블에 mb_dupinfo 라는 메타키로 유니크한 값이 저장이 됩니다.
그래서 비밀번호 변경시
본인확인을 하게 된다면,
유저 메타 테이블에서 mb_dupinfo 메타키의 본인확인 유니크 값을 select 한 다음에,
user_id 가 있다면, 유저 테이블에서 user_id 로 이메일 정보를 select 해 와서,
그 해당 이메일로 메일을 보내시면 될것 같습니다.
아니요 이외에 스크립트 호출되어야 하는 부분도 필요합니다.