Skip to content

비밀번호 찾기 — 이메일 인증 후 비밀번호 재설정 #457

Description

@OnlyReadOneBook

📜 Overview (Required)

로그인 화면 "아이디/비밀번호 찾기"의 비밀번호 갈래(#456 의 아이디 갈래와 짝). 이메일 인증번호를 발송·검증한 뒤 새 비밀번호로 재설정하는 흐름을 구현한다.

시안 (Figma UP9ZR186jHvRBicjA2SOea)

화면 node-id
이메일 인증하기 (초기) 2431:14299
인증번호 전송됨 (안내 문구) 2383:16680
소셜 로그인 계정 차단 다이얼로그 2383:16667
비밀번호 변경 2383:16789
비밀번호 변경 완료 2383:16854

API (현행 Swagger 실측 2026-07-16, https://afternote.kro.kr/v3/api-docs)

엔드포인트 요청 응답
POST /api/v1/auth/find/send/code {email} —
POST /api/v1/auth/password/find {email, certificateCode, newPassword, confirmPassword} —

password/find 가 인증번호와 새 비밀번호를 한 번에 받으므로, 인증 화면에서 받은 certificateCode 를 비밀번호 변경 화면까지 들고 가 최종 제출한다.

수용 기준

  • 아이디 찾기 결과 화면(2383:16514)의 "비밀번호 찾기" 버튼에서 진입
  • 이메일 인증 → 비밀번호 변경(2383:16789) → 완료(2383:16854) → "로그인" 으로 복귀
  • 비밀번호/비밀번호 확인 불일치·규칙 위반 검증
  • 소셜 로그인 계정으로 시도 시 차단 다이얼로그(2383:16667) 노출
  • ./gradlew build 그린

시안 — 이메일 인증 화면:

Image

📍 Note (Optional)

  • base = feat/456 (stack) — 이메일 인증 화면과 find/send/code 배선을 feat(onboarding): 계정 찾기 공용 이메일 인증 화면 및 auth find 데이터 계층 #456 과 공유하므로 그 위에 쌓는다.
  • 소셜 계정 판별 근거 없음 — BE 확인 필요: 차단 다이얼로그(2383:16667)를 띄우려면 해당 이메일이 소셜 가입 계정인지 알아야 하는데, password/find 응답이 data: object 라 판별 필드가 없다. 전용 에러 코드로 내려주는지, 아니면 find/send/code 단계에서 걸러야 하는지 확인 후 확정. 확인 전까지 이 화면 구현 보류.
  • 문구 재사용: 비밀번호 변경 화면의 규칙 안내 2줄이 기존 signup_password_rule_combination("8 ~ 16자의 영문 대소문자, 숫자, 특수문자를 조합하여 설정해 주세요.")·signup_password_rule_reuse("이전에 사용한 적 없는 비밀번호가 안전합니다.") 와 글자까지 동일 → 회원가입 쪽 문구·검증 로직 재사용.
  • 만료 타이머는 시안에 없음(feat(onboarding): 계정 찾기 공용 이메일 인증 화면 및 auth find 데이터 계층 #456 Note 참조).

Activity

  1. OnlyReadOneBook commented on Aug 23, 2026

    @OnlyReadOneBook
    CollaboratorAuthor

    08-23 회의에서 회원가입 카카오 단일화 + 이메일 가입 갈래 화면 제거가 결정됐습니다(08-23 회의록, 유보: "진행해보고 다음주 확인 예정"). 확정되면 비밀번호를 가진 이메일 계정 갈래 자체가 사라져 이 기능은 대상이 없어집니다 — 미착수 상태 그대로 close 예정.

    다음주 회의 확정 전까지 착수 보류 유지. 상위 추적: #943

  2. changed the title [-]feat(onboarding): 비밀번호 찾기 — 이메일 인증 후 비밀번호 재설정[/-] [+]비밀번호 찾기 — 이메일 인증 후 비밀번호 재설정[/+] on Aug 28, 2026
  3. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Aug 30, 2026
  4. OnlyReadOneBook commented on Sep 2, 2026

    @OnlyReadOneBook
    CollaboratorAuthor

    Nav3 에서 재작성될 배선은 이 이슈 밖이다 — #1698 소유

    #1624 가 세우는 Nav2 배선 중 Navigation 3 이관 때 다시 쓰는 부분은 이 이슈에서 다루지 않는다. #1698(소관 그래프 Nav3 로컬 스택 이관)이 온보딩 그래프 전체를 소유하고, 유입분은 해당 이슈에 인계했다.

    #1624 가 세우는 것 Nav3 이관 시 소유
    FindPasswordViewModel 3화면 공유 (graphScopedParentEntry) 재작성 — Nav3 엔 NavGraph 스코프가 없다 #1698
    replaceFindPasswordWith* 의 popUpTo { inclusive = true } 재작성 — 로컬 스택 리스트 조작 #1698
    composable<FindPassword*Route> 3개 entry<> 로 기계적 치환 #1698
    FindPasswordRoute 등 @Serializable data object NavKey 부착 정도 그대로
    화면 Composable·ViewModel·Repository·서버 계약 무관 그대로

    이 이슈는 비밀번호 찾기 기능 을 닫는다. 배선은 지금 Nav2 로 세우되, 그게 이관 부채라는 사실은 #1698 이 추적한다 — 여기서 미리 손대거나 우회 설계를 하지 않는다.

  5. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions