php개발자(백엔드) /php

비밀번호 찾기 메일전송

장김치 2016. 9. 7. 17:35

[비밀번호 찾기 메일전송]


필자는 회원의 비밀번호를 찾기 위해 회원의 이메일로 임시 비밀번호 재설정 페이지를 전송해주는 방법을 사용할것인데 상세코드말고 필자가 이해한 알고리즘 개념에 대해 정리한다.



1. 해당 회원의 정보를 가져오기 위해 회원의 고유값을 입력하는 폼을 생성한다. 



2. 회원 전화번호, 이메일, 이름 등을 입력하고 처리하는 페이지(find_proc.php)로 각 값들을 넘겨준다.



3. 받아온 값으로 테이블에서 회원정보를 검색하여 가져온다.



4. 해당 회원의 이메일로 비밀번호재설정 페이지의 링크를 전송해준다. 

전송할때 시간과 회원고유식별값을 따로 저장해주는 테이블을 만들어 저장해준다. 왜냐하면 전송된 메일이 여러 사람에게 사용되지 않도록 보안상의 이유로 시간초과 예외처리를 만들어주어야 하는데 그때 사용되기 때문이다. 재설정 페이지는 오래 유지되는 페이지가 되어서는 안된다.


링크에는 전송당시 시간값과 회원고유값을 구분하는 식별자로 또다른 임시키를 만들어 전송한다.

-> $str = encode("{$row->mem_idx}|{$time}");



5. 회원이 메일을 열어 재설정 페이지로 이동하여 변경하고자 하는 비밀번호를 입력한다.



6. 입력한 비밀번호를 재설정해준다(reset_proc.php). 이때 encode하여 보낸 키값을 explode() 함수를 사용해 문자열로 구분해준 다음 복호화하여 해당 idx가 같은 필드에 업데이트 해주어야 한다.

-> $key = explode("|", decode($key));