Skip to content

GitHub 이메일 변경으로 인한 계정 연결 충돌 안내를 추가한다 #712

Description

@opficdev

문제

Google 계정으로 로그인한 상태에서 GitHub provider를 연결하려 할 때, GitHub primary email 변경으로 인해 기존 GitHub provider가 다른 Firebase Auth 계정에 연결되어 있으면 현재는 일반 가입 충돌처럼 안내될 수 있습니다.

이 상황은 단순히 “이미 가입된 계정”이 아니라, GitHub 이메일 변경으로 인해 기존 GitHub 계정과 현재 로그인 계정의 연결 경계가 충돌한 상태입니다.

자동으로 link를 성공시키면 기존 GitHub 계정의 접근 경로가 바뀔 수 있고, 사용자는 기존 계정 데이터가 사라지거나 병합된 것처럼 오해할 수 있습니다.

결정 사항

  • 이 충돌은 자동 link하지 않습니다.
  • 기존 GitHub provider를 현재 계정으로 이동하지 않습니다.
  • 자동 로그아웃, 자동 계정 전환, 데이터 병합을 수행하지 않습니다.
  • 사용자가 현재 로그인 상태를 유지한 채 원인을 이해할 수 있도록 전용 안내를 표시합니다.
  • 기존 “이미 가입된 계정” 안내와 분리합니다.

기대 동작

  • 서버에서 GitHub provider link 충돌 오류를 받으면 전용 alert를 표시합니다.
  • alert는 GitHub 이메일 변경으로 인해 현재 계정에 GitHub를 연결할 수 없다는 내용을 전달합니다.
  • 확인 버튼을 누르면 alert만 닫고 현재 로그인 상태를 유지합니다.
  • GitHub provider link를 재시도하거나 강제로 연결하지 않습니다.
  • 기존 Firebase Auth 에러의 일반 가입 충돌 문구를 표시하지 않습니다.

안내 문구 초안

제목:
GitHub 계정을 연결할 수 없음

본문:
GitHub 이메일 변경으로 인해 이 GitHub 계정이 다른 DevLog 계정과 충돌합니다. 기존 계정의 데이터를 보호하기 위해 현재 계정에는 GitHub를 연결할 수 없습니다.

버튼:
확인

수정 방향

  • GitHub link 요청 실패 처리에서 서버의 전용 오류 reason을 분기합니다.
    • 예: github_provider_link_conflict
    • 예: github_email_changed_account_conflict
  • 해당 reason이면 기존 가입 충돌 alert 대신 GitHub 이메일 변경 충돌 alert를 표시합니다.
  • 확인 버튼은 alert dismiss만 수행합니다.
  • 현재 로그인 세션을 유지합니다.
  • 자동 logout, 자동 unlink, 자동 link, 계정 병합 액션을 넣지 않습니다.

수용 기준

  • GitHub provider가 다른 Firebase uid에 연결된 상태에서 현재 계정에 link를 시도하면 전용 안내가 표시됩니다.
  • 이 상황에서 기존 “이미 가입된 계정” alert가 표시되지 않습니다.
  • 확인 버튼을 누르면 현재 로그인 상태가 유지됩니다.
  • GitHub provider가 현재 계정에 link되지 않습니다.
  • 자동 로그아웃, 자동 계정 전환, 데이터 병합이 발생하지 않습니다.
  • 일반 가입 충돌 오류와 GitHub 이메일 변경 충돌 오류를 구분해 처리합니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions