Skip to content

[#720] Google 로그인을 공통 서버 callback과 Firebase custom token 흐름으로 전환한다#729

Merged
opficdev merged 9 commits into
developfrom
refactor/#720
Jul 13, 2026
Merged

[#720] Google 로그인을 공통 서버 callback과 Firebase custom token 흐름으로 전환한다#729
opficdev merged 9 commits into
developfrom
refactor/#720

Conversation

@opficdev

Copy link
Copy Markdown
Owner

🔗 연관된 이슈

🎯 의도

  • Google 인증에서 iOS가 GoogleSignIn SDK와 provider token을 직접 다루던 책임을 제거
  • Apple·GitHub와 같은 서버 callback, ticket, Firebase custom token 흐름으로 통일

📝 작업 내용

📌 요약

  • Google 로그인과 계정 연결을 서버 발급 OAuth session, callback ticket, Firebase custom token 교환 흐름으로 전환
  • OAuthAuthenticationTicketRequesterOAuthTicketExchangeHandler를 통해 GitHub·Google이 공통 ticket 요청 흐름을 사용하도록 정리
  • GoogleSignIn SDK 의존성, URL handler, URL scheme, top view controller 탐색, 클라이언트 token 처리 제거
  • provider 연결 충돌 오류, 계정 연결 protocol, 인증 복원 계약, 레거시 미사용 코드 정리

🔍 상세

  • /auth/google/sign-in-sessions, /auth/google/custom-token, /auth/google/account-link-sessions, /auth/google/account-link, /auth/google/access-token endpoint 추가
  • GoogleAuthenticationServiceImpl에서 ASWebAuthenticationSession callback ticket을 서버에 전달하고, 반환된 customToken으로 FirebaseAuth sign-in 수행
  • Google 계정 연결·해제 후 currentUser.reload()를 유지하고, 일반 로그아웃은 Firebase/FCM 세션 정리만 수행하도록 분리
  • AuthenticationAPIError로 provider 연결 충돌과 lastProvider 오류 매핑을 공통화하고, 계정 연결 API에서 불필요한 email 매개변수 제거
  • AuthenticationRepository.restore() 계약과 관련 구현을 제거하고, Firebase auth session 관찰 흐름만 유지
  • OAuthWebAuthenticationSession 타입 전체의 MainActor 격리를 줄이고, callback host 비교를 대소문자 차이 없이 처리
  • FunctionAPIEndpointTests, OAuthTicketExchangeHandlerTests를 Google endpoint와 ticket 처리 기준으로 갱신
  • GoogleSignIn package, GoogleSignInURLHandler, GIDClientID URL scheme, TopViewControllerProvider, 관련 README 표기 제거

📸 영상 / 이미지 (Optional)

  • 없음

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 풀 리퀘스트는 GoogleSignIn SDK 의존성을 제거하고, 백엔드 커스텀 토큰 흐름을 활용한 Google 로그인 및 계정 연결 방식으로 전환하는 작업을 포함하고 있습니다. 이에 따라 불필요해진 SDK 관련 코드, 설정 파일, 그리고 TopViewControllerProvider 등의 유틸리티 클래스를 정리하고 관련 테스트 코드를 업데이트했습니다. 리뷰 피드백으로는 OAuthWebAuthenticationSession 클래스에서 @MainActor 격리를 제거할 경우 Swift 6 및 strict concurrency 환경에서 동시성 경고나 컴파일 에러가 발생할 수 있으므로, 클래스 전체에 @MainActor 격리를 유지할 것을 권장합니다.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@opficdev opficdev merged commit a1f3908 into develop Jul 13, 2026
7 checks passed
@opficdev opficdev deleted the refactor/#720 branch July 13, 2026 23:35
@opficdev opficdev added the App Store 앱스토어 배포 버전 label Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

App Store 앱스토어 배포 버전

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Google 로그인을 공통 서버 callback과 Firebase custom token 흐름으로 전환한다

1 participant