Skip to content

Conversation

@joyewon0705
Copy link
Collaborator

📌 개요

  • 회원 계정 관리 강화를 위해 아이디 찾기, 비밀번호 재설정 요청, 비밀번호 재설정 기능을 추가했습니다.
  • 이메일 기반으로 아이디 및 비밀번호 재설정 링크를 발송하며, 보안을 위해 토큰 기반 검증을 적용했습니다.

🔨 작업 내용

1. 아이디 찾기 (/api/auth/username/recover)

  • 사용자가 이메일을 입력하면 해당 이메일로 가입된 계정의 username을 일부 마스킹 처리 후 메일로 발송
  • AuthService.recoverUsername() 구현
  • EmailService.sendUsernameEmail() 구현
  • 마스킹 규칙:
      • 1~2글자 → 첫 글자만 보이고 나머지는 * (ex. a*)
      • 3~4글자 → 앞 1글자 + * + 뒤 1글자 (ex. a*c, a**d)
      • 5글자 이상 → 앞 2글자 + * + 뒤 2글자 (ex. ab*de, ab**ef)

2. 비밀번호 재설정 요청 (/api/auth/password/recover)

  • 이메일을 입력하면 비밀번호 재설정 토큰을 생성하고 메일 발송
  • AuthService.recoverPassword() 구현
  • TokenService.createPasswordResetToken() 추가 (유효시간 1시간)
  • EmailService.sendPasswordResetEmail() 구현

3. 비밀번호 재설정 (/api/auth/password/reset)

  • 토큰과 새로운 비밀번호를 요청 본문으로 받아 처리
  • AuthService.resetPassword() 구현
    1. 토큰 검증 및 사용자 조회
    2. 비밀번호 정책 검증 (PasswordValidator)
    3. 비밀번호 변경 및 암호화 저장
    4. 토큰 삭제 (재사용 방지)

4. Swagger 문서

  • /username/recover, /password/recover, /password/reset 엔드포인트에 대한 API 명세 추가
  • 성공/실패 응답 예시 포함

5. 테스트 코드

  • Service 단 테스트 (AuthServiceTest)
  • Controller 단 테스트 (AuthControllerTest)

🔗 관련 이슈

Closes #124

📝 참고 사항

✅ 체크리스트

  • 기능 동작 확인
  • 테스트 코드 작성
  • 문서/주석 추가 및 최신화

@github-actions github-actions bot changed the title Feat: 아이디 찾기 및 비밀번호 재설정 기능 추가 Feat: 아이디 찾기 및 비밀번호 재설정 기능 추가 (#124) Sep 30, 2025
@joyewon0705 joyewon0705 merged commit 3156492 into dev Sep 30, 2025
2 checks passed
@github-actions github-actions bot deleted the Feat/124 branch September 30, 2025 08:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants