Files
Gnuboard5/docs/email-certification-expiration.md
whitedot 672d05f968 feat: 메일 미인증 만료 회원을 기존 탈퇴 절차로 정리
메일 인증 기한이 지난 미인증 회원을 일일 정리에서 탈퇴 처리하고 본인확인 정보와 소셜 연결을 해제한다. 나머지 회원자료는 기존 탈퇴 후 삭제 정책에 따라 정리하며 아이디는 보존한다.

자진 탈퇴와 자동 정리에 공통 함수를 사용하고 인증 완료·재발송과의 동시 변경을 조건부 갱신으로 보호한다. 관리자 상태 표시와 설정 안내, 운영 문서를 함께 반영한다.

검증: 변경 PHP 6개 문법 검사, 임시 DB에서 만료 경계·재발송·동시 변경·자진 탈퇴·유예 후 정리 검사 통과.
2026-09-09 07:58:16 +00:00

25 lines
3.1 KiB
Markdown

# 메일 미인증 회원의 만료 및 탈퇴 처리
메일인증을 사용하는 사이트에서 인증 링크의 유효시간이 지난 미인증 회원은 기존 회원탈퇴 절차로 정리한다. 기본 유효시간은 60분이며 기본환경설정에서 분 단위로 변경할 수 있다. `0`은 인증 링크 만료와 미인증 만료 정리를 모두 사용하지 않는 설정이다.
## 실행 시점과 대상
- 기존 데이터 정리와 동일하게 최고관리자 접속 시 하루 한 번 실행한다. 만료 시각에 즉시 실행되는 예약 작업은 아니며 최고관리자가 접속하지 않으면 정리가 지연된다.
- 인증을 완료했거나 이미 탈퇴·삭제된 회원과 최고관리자는 제외한다.
- 재발송한 토큰은 새 발급 시각부터 유효시간을 계산한다. 기존 형식의 토큰이나 이미 폐기된 토큰은 회원가입 시각을 기준으로 한다. 유효한 기준 시각을 확인할 수 없는 회원은 자동 처리하지 않는다.
- 유효시간의 마지막 초까지는 인증할 수 있다. 실제 탈퇴 직전에 회원 상태를 다시 읽고, 그 이후 인증 완료·토큰 재발송·이메일 변경이 발생하면 해당 탈퇴 처리를 중단한다.
- 메일인증을 사용하지 않는 사이트는 미인증 만료 정리를 실행하지 않는다. 소셜 가입 시 이미 인증 처리된 회원도 대상이 아니다.
## 두 단계의 처리
1. **만료 회원 탈퇴 처리**: 탈퇴일과 만료 사유를 기록하고 `mb_certify`, `mb_adult`, `mb_dupinfo`를 초기화한다. 이메일 인증·비밀번호 재설정 토큰을 폐기하고 소셜 연결을 해제한다. 일반 탈퇴와 같은 `member_leave` 이벤트를 실행한다. 이후 로그인 및 기존 인증 링크 사용은 불가능하다.
2. **탈퇴 후 회원자료 정리**: 기존 `회원탈퇴후 삭제일` 설정과 `member_delete()`를 사용한다. 연락처·주소·비밀번호·포인트 및 기존 삭제 함수가 처리하는 연관 데이터를 정리한다. 이 설정이 `0`이면 두 번째 자동 정리는 하지 않지만 첫 단계의 본인확인 해제는 실행한다.
기존 정책대로 회원 아이디는 보존하여 재사용을 막는다. 첫 단계에서 회원 레코드를 삭제하거나 연락처·포인트를 즉시 제거하지 않는다. 개인정보 전체의 즉시 삭제 기능은 아니다.
## 기존 사이트 적용
적용 시 이미 만료된 미인증 회원도 다음 정리 대상이 된다. 기본환경설정의 메일인증 유효시간과 회원탈퇴후 삭제일을 확인하고, 운영 중인 확장의 `member_leave` 이벤트가 자동 정리에도 적합한지 점검한다. 자동 정리는 만료 회원 본인의 요청이 아니라 최고관리자 요청에서 실행되므로 이벤트 인수의 회원정보를 기준으로 처리해야 한다.
관리자 회원 목록은 정리 전에는 `메일 미인증`, 탈퇴 처리 후에는 `탈퇴함`으로 표시한다. 만료된 회원을 다시 정상 계정으로 복구하거나 동일 아이디로 재가입시키는 기능은 포함하지 않는다.