[XE] 아이디 계정때도 이메일 변경시 재인증 메일 발송하기

돌아다니면서 구한 자료로 공부하는 공간입니다..

틀린부분이 있다면 말씀해주시면 수정하도록 하겠습니다.

※ 남을 비방하거나 욕 / 정치적인 글은 삭제 대상이 됩니다. ※

[XE] 아이디 계정때도 이메일 변경시 재인증 메일 발송하기

만키로군 0 1830 0

이메일이 계정일때는 이메일 변경시 재인증을 하나 아이디 계정일 경우에는 쉽게 변경가능해

이메일 인증을 해놔도 무작위 이메일로 변경후 사용한 이메일로 재가입이 가능한 부분이 있죠.

간단하게 수정되는 부분을 막고 기존 기능을 사용합니다.


1.우선 이메일 변경이 불가능하게 하는 부분입니다.


member.admin.view.php 파일


else if($formInfo->name == 'email_address') 검색후

{

$formTag->type = 'email';

$inputTag = '<input type="email" name="email_address" id="email_address" value="'.$memberInfo['email_address'].'"readonly/>';

}


빨간부분을 추가하면 회원정보 변경에서 수정이 되지 않습니다.


member.controller.php 파일


function updateMember($args) 검색후


$args->email_address = $orgMemberInfo->email_address; 를 삽입

list($args->email_id, $args->email_host) = explode('@', $args->email_address); 부분 위쪽에


해당부분을 추가하면 실제 정보가 수정되는 부분에서 기존 이메일값을 가져와 대입합니다.



수정자체를 불가능하게 하실분들은 위에까지만 추가하시면 됩니다.



2.이제 기존 이메일계정시 메일변경부분을 이용하여 메일 재인증폼 띄우기


본인이 사용하는 skin의 member_info.html 파일


cond="$member_config->identifier == 'email_address'" 검색후 삭제합니다.


해당부분은 이메일 계정사용시 표시하도록 하는 부분입니다.

삭제함으로써 아이디계정시에도 표시가 됩니다.



3.여기서 본인이 사용하지 않는 메일로 변경하는 분들을 제재하고 싶은 분들은


member.controller.php 파일


function procMemberModifyEmailAddress() 가장 아래

$this->destroySessionInfo(); 삽입


접속중인 세션을 끊습니다.


function doLogin($user_id, $password = '', $keep_signed = false) 의


if($this->memberInfo->denied == 'Y') 끝나는 부분에


else { 

$args->member_srl = $this->memberInfo->member_srl;

$output = executeQuery('member.chkAuthMail', $args);

if ($output->toBool() && $output->data->count != '0') { return new Object(-1,'msg_user_not_confirmed'); } 

} 삽입


이메일 인증이 완료되지 않으면 인증전이란 메세지가 뜨며 로그인이 불가능해집니다.


필요에따라 단계별로 적용하시면 됩니다.

, ,

0 Comments
제목