Skip to content

[Feat] 소셜 로그인 공통 기반 보강 - #102

Draft
MinHeokChoi wants to merge 3 commits into
feat/#92-account-lifecyclefrom
feat/#101-social-login-foundation
Draft

[Feat] 소셜 로그인 공통 기반 보강#102
MinHeokChoi wants to merge 3 commits into
feat/#92-account-lifecyclefrom
feat/#101-social-login-foundation

Conversation

@MinHeokChoi

Copy link
Copy Markdown
Contributor

✨ PR 유형

  • 새로운 기능 추가
  • 코드 리팩토링
  • 문서 수정
  • 테스트 추가, 테스트 리팩토링
  • 빌드 부분 혹은 패키지 매니저 수정

🛠️ 작업내용

  • Apple 전용 계정 연결을 SocialLoginCoordinator와 provider authorization adapter로 일반화했습니다.
  • AccountCredentials/SignedInAccount에 provider를 저장하고, provider가 없는 기존 Keychain payload는 Apple로 호환 복원합니다.
  • AppCapabilities로 계정 UI·세션 복원·API transport 이전 서버 요청을 함께 차단합니다.
  • 루트 AuthCallbackRouter와 Google/Kakao 공개 build config 키 기반을 준비했습니다. 실제 SDK·URL scheme은 L2/L3 범위입니다.
  • 401 재발급으로 회전된 access/refresh token을 함께 보존하고, logout retry target body를 새 refresh token으로 재생성합니다.
  • token·authorization code 문자열과 설정 진단 값의 redaction 계약을 보강했습니다.

검증:

  • 관련 XCTest: 73 passed, 0 failed/skipped
  • 전체 XCTest: 359 passed, 0 failed/skipped
  • iPhone 16 Simulator Debug build: 성공
  • generic iPhone Debug/Release build: 성공 (CODE_SIGNING_ALLOWED=NO)
  • iPhone functional gate / SwiftData boundary gate: 통과
  • Info.plist / entitlements plutil: 통과
  • git diff check: 통과
  • SwiftData schema/migration, Local Repository, Routine Domain 변경: 0건

📋 추후 진행 상황

  • L1에서 Apple nonce·credential state·revocation 출시 흐름을 완성합니다.
  • L2/L3에서 Google/Kakao SDK, URL scheme, 실제 callback handler를 연결합니다.
  • 실제 iPhone과 provider console/backend E2E는 아직 미검증이며 통과로 기록하지 않습니다.

📌 리뷰 포인트

  • legacy Keychain payload가 provider 추가 뒤에도 안전하게 복원되는지 확인해 주세요.
  • account kill switch가 UI·restore·transport를 모두 차단하면서 local-first 앱 진입을 막지 않는지 확인해 주세요.
  • 401 뒤 logout 재요청이 stale refresh token이 아닌 회전된 token을 body에 사용하는지 확인해 주세요.
  • secret/admin key/private key가 저장되지 않았고 SwiftData/local repository 계약 변경이 없는지 확인해 주세요.

✅ Checklist

  • 커밋 메시지 컨벤션에 맞게 작성했습니다
  • 유지-보수를 위해 필요한 계약 주석을 작성했습니다

Closes #101

DO NOT MERGE — 소셜 로그인 stack 일괄 검토 대기

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0fd3f14c-18c8-4f9a-91aa-fc615158e637

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/#101-social-login-foundation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.

1 participant