You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장 #609
수신자 홈의 "라이프 이벤트 레터 확인하러 가기" 가 수신자 열람 화면이 아니라 작성자(회원)용 타임레터 화면으로 이동한다. 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 (열람 승인 완료 상태여야 이 화면에 도달한다).
changed the title [-]fix(afternote): 타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장[/-][+]fix(app): 타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장[/+]on Jul 29, 2026
changed the title [-]fix(app): 타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장[/-][+]타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장[/+]on Aug 28, 2026
본문 처방의 전제가 바뀌었습니다. 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 을 빈 상태로 덮는 문제는 계약과 상관없이 남는 버그라 이 이슈에 그대로 둡니다.
Activity
[-]fix(afternote): 타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장[/-][+]fix(app): 타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장[/+]OnlyReadOneBook commentedon Jul 30, 2026
재현 확인 — 열람 조건이 충족돼도 동일 (2026-07-30)
전달 조건이 충족된 대조군 수신자(receiverId=18)로 다시 확인했다. 이번에는 서버에 읽을 편지가 실제로 있다 —
GET receiver-auth/time-letters200, 1건(딸에게 남기는 편지).그럼에도 "라이프 이벤트 레터 확인하러 가기" 는 여전히 회원 API 를 탄다.
화면 표시는 "아직 등록된 타임레터가 없어요. 소중한 사람을 위해 작성해 보세요." + 작성 FAB + 회원 하단 탭바. 즉 전달 조건 충족 여부와 무관하게 항상 빈 화면이고, 수신자는 도착한 편지를 어떤 경로로도 열 수 없다.
수신자 홈 요약의 타임레터 카운트가 0 으로 뜨는 건 별개 원인이다 —
loadTimeLettersCount()가 stub 이라 서버 조회 자체가 없다(#610).[-]fix(app): 타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장[/-][+]타임레터 수신 열람이 작성자 화면으로 라우팅 — receiver-auth API 미사용·401 을 빈 상태로 위장[/+]OnlyReadOneBook commentedon Sep 30, 2026
본문 처방의 전제가 바뀌었습니다. 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 을 빈 상태로 덮는 문제는 계약과 상관없이 남는 버그라 이 이슈에 그대로 둡니다.