문제
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 이메일 변경 충돌 오류를 구분해 처리합니다.
문제
Google 계정으로 로그인한 상태에서 GitHub provider를 연결하려 할 때, GitHub primary email 변경으로 인해 기존 GitHub provider가 다른 Firebase Auth 계정에 연결되어 있으면 현재는 일반 가입 충돌처럼 안내될 수 있습니다.
이 상황은 단순히 “이미 가입된 계정”이 아니라, GitHub 이메일 변경으로 인해 기존 GitHub 계정과 현재 로그인 계정의 연결 경계가 충돌한 상태입니다.
자동으로 link를 성공시키면 기존 GitHub 계정의 접근 경로가 바뀔 수 있고, 사용자는 기존 계정 데이터가 사라지거나 병합된 것처럼 오해할 수 있습니다.
결정 사항
기대 동작
안내 문구 초안
제목:
GitHub 계정을 연결할 수 없음본문:
GitHub 이메일 변경으로 인해 이 GitHub 계정이 다른 DevLog 계정과 충돌합니다. 기존 계정의 데이터를 보호하기 위해 현재 계정에는 GitHub를 연결할 수 없습니다.버튼:
확인수정 방향
github_provider_link_conflictgithub_email_changed_account_conflict수용 기준