Repository navigation
fix(core): 패스키 검증 실패 401(2701)을 토큰 만료로 재전송하지 않는다 (#2287) - #2288
Merged
Merged
Conversation
패스키 등록은 서버가 첫 요청에서 챌린지를 소비한다. 2701 을 토큰 만료로 보고 재발급 뒤 같은 본문을 다시 보내면 실제 거절 사유가 챌린지 무효(2700)로 가려진다. 1202 와 같은 업무 오류 판별 경로에 2701 을 더한다.
OnlyReadOneBook
marked this pull request as ready for review
October 7, 2026 06:59
This was referenced Oct 7, 2026
OnlyReadOneBook
marked this pull request as draft
October 7, 2026 07:14
OnlyReadOneBook
marked this pull request as ready for review
October 7, 2026 07:18
This was referenced Oct 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
핵심 검토 파일:
TokenAuthenticator.kt(프로덕션),TokenAuthenticatorTest.kt(테스트)📌𝘐𝘴𝘴𝘶𝘦𝘴
📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯
TokenAuthenticator가 재발급 없이 원래 응답을 넘기는 업무 오류 401 에 패스키 검증 실패(code 2701)를 더했습니다. fix(core): 현재 비밀번호 불일치 401이 토큰 만료로 처리되어 로그아웃된다 #2222 의 1202 판별 경로(정수 code, 64KiB 상한, 원본 본문 보존)를 그대로 씁니다.PasskeyService.register,PasskeyChallengeService.consume). 그래서 2701 을 재전송하면 응답이 항상 2700(챌린지 무효)으로 바뀌고 실제 사유가 사라졌습니다. 2026-09-06 실서버 QA 기록의/auth/reissue200 다음 2700 이 이 경로입니다. 근거는 fix(core): 패스키 검증 실패 401(2701)이 토큰 만료로 처리되어 챌린지 무효(2700)로 가려진다 #2287 본문에 있습니다.TokenAuthenticatorTest는 2701 을 갱신 경로 예시에서 빼고, 1202 와 같은 단언(재발급 0회, 세션 정리 0회, 원본 본문 보존, 시도 횟수 0~2)으로 옮겼습니다.🧪 CI Test Plan
{ "androidTest": { "mode": "none", "reason": "변경은 core:network 의 OkHttp 인증기 판별 상수 하나와 그 JVM 테스트입니다. Android UI, 매니페스트, 네비게이션, 계측 소스셋을 건드리지 않고, app/src/androidTest 에서 TokenAuthenticator 는 주석 언급 1건뿐이라 이 판별을 여는 계측 테스트가 없습니다.", "tests": [] } }📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵
화면 변경 없음.
💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴
로컬 검증(클라우드 컨테이너):
변이 확인: 수정 전
TokenAuthenticator.kt로 새 테스트를 돌리면 15건 중 1건(2701 단언)이 실패합니다./auth/passkey/authenticate)의 2701 은 Bearer 가 없는 요청이라 이전에도 재시도하지 않았습니다. 이번 변경으로 달라지지 않습니다.Generated by Claude Code