Skip to content

타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장 #609

Open

Description

@OnlyReadOneBook

📜 Overview (Required)

수신자 홈의 "라이프 이벤트 레터 확인하러 가기" 가 수신자 열람 화면이 아니라 작성자(회원)용 타임레터 화면으로 이동한다. 2026-07-30 수신자 열람 승인(delivery-verification APPROVED) 이후 처음으로 열린 구간을 실기기(에뮬 5556, develop b86fb07) 로 훑다가 확인했다.

실측 (logcat OkHttp)

  • 탭 시 호출: GET /api/v1/time-letters → 401, GET /api/v1/users/receivers → 401 ({"code":1000,"message":"인증되지 않은 요청입니다."})
  • 호출되지 않은 것: GET /api/v1/receiver-auth/time-letters — 같은 시점 curl 로는 200 + 1건 을 정상 반환한다(X-Auth-Code 헤더). 즉 볼 수 있는 편지가 서버에 있는데 화면이 다른 API 를 본다.

수신자는 로그인하지 않은 사용자라 회원 API 는 구조적으로 401 이 나오고, 그 401 이 화면에서 빈 상태로 위장된다. 실제로 뜨는 문구는 "아직 등록된 타임레터가 없어요. 소중한 사람을 위해 작성해 보세요." 로, 고인의 편지를 읽으러 온 수신자에게 편지 작성을 권유한다.

부수적으로 이 화면에는 작성 FAB(우하단 펜)와 회원용 하단 탭바(홈·기록·타임레터·노트)가 그대로 노출되고, 하단 "홈" 탭을 누르면 회원 홈 화면까지 진입된다(거기서도 401 → "정보를 불러오지 못했습니다"). 수신자 흐름이 회원 그래프로 새는 경로다.

ReceiverNavActions 주석은 "다른 top-level Route(MindRecord/TimeLetter/Setting 등)로의 이동은 수신자 홈 측에서" 라고 적고 있어, 회원 그래프로 넘기는 것이 현재 설계로 보인다. 수신자 전용 목적지(receiver-auth/time-letters 사용)로 갈아끼우고, 그 화면에서는 작성 FAB·회원 탭바가 뜨지 않아야 한다.

📌 Child Issue(Optional)

No response

📍 Note (Optional)

  • 애프터노트·마음의 기록 진입은 올바르게 receiver-auth/* 를 호출한다(각각 403 code 2009 — 전달 조건 미충족). 타임레터만 회원 API 를 탄다.
  • 401 을 빈 상태로 덮는 문제는 수신자 홈 요약 카운트에도 같은 형태로 있다 — 별도 이슈로 등록.
  • 재현 계정: qa407-sender@example.com / receiverId=7 (열람 승인 완료 상태여야 이 화면에 도달한다).

Activity

  1. changed the title [-]fix(afternote): 타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장[/-] [+]fix(app): 타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장[/+] on Jul 29, 2026
  2. OnlyReadOneBook commented on Jul 30, 2026

    @OnlyReadOneBook
    CollaboratorAuthor

    재현 확인 — 열람 조건이 충족돼도 동일 (2026-07-30)

    전달 조건이 충족된 대조군 수신자(receiverId=18)로 다시 확인했다. 이번에는 서버에 읽을 편지가 실제로 있다 — GET receiver-auth/time-letters 200, 1건(딸에게 남기는 편지).

    그럼에도 "라이프 이벤트 레터 확인하러 가기" 는 여전히 회원 API 를 탄다.

    --> GET https://afternote.kro.kr/api/v1/time-letters      <-- 401
    --> GET https://afternote.kro.kr/api/v1/users/receivers   <-- 401
    

    화면 표시는 "아직 등록된 타임레터가 없어요. 소중한 사람을 위해 작성해 보세요." + 작성 FAB + 회원 하단 탭바. 즉 전달 조건 충족 여부와 무관하게 항상 빈 화면이고, 수신자는 도착한 편지를 어떤 경로로도 열 수 없다.

    수신자 홈 요약의 타임레터 카운트가 0 으로 뜨는 건 별개 원인이다 — loadTimeLettersCount() 가 stub 이라 서버 조회 자체가 없다(#610).

  3. changed the title [-]fix(app): 타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장[/-] [+]타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장[/+] on Aug 28, 2026
  4. OnlyReadOneBook commented on Sep 30, 2026

    @OnlyReadOneBook
    CollaboratorAuthor

    본문 처방의 전제가 바뀌었습니다. BE main(6adc0c4)에는 receiver-auth/time-letters 와 X-Auth-Code 가 없습니다(BE PR #289 로 수신자 이메일 인증 제거). 수신자가 받은 타임레터는 회원 JWT 로 GET /api/v1/received-records/{receiverId}/time-letters, 상세는 /{receiverId}/time-letters/{timeLetterReceiverId} 로 읽습니다.

    그래서 라우팅을 고칠 때는 이 경로를 기준으로 하고, 받은 기록함 연동을 맡은 #607 이 먼저 서야 해 blocked_by #607 을 걸었습니다. 작성 FAB·회원 탭바가 수신 열람에 노출되는 것과 401 을 빈 상태로 덮는 문제는 계약과 상관없이 남는 버그라 이 이슈에 그대로 둡니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:timeletter타임레터 기능 영역bugSomething isn't working

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions