Skip to content

feat: macOS 전체 인증 화면 재설계 및 Email 인증 연결 #53

Description

@chaeyn

대상

  • macOS SwiftUI 클라이언트 apps/mac만 변경
  • iOS, Android, Windows, Web, 서버 및 contracts/는 범위에서 제외

문제

현재 macOS 로그인 화면은 Apple/Google 인증만 단순히 나열되어 있고, Email 인증 진입점과 회원가입·인증 코드·로그인 상태가 연결되어 있지 않습니다. 인증 방법이 하나의 흐름으로 보이지 않고 로딩·오류 상태도 분리되어 있어 방송 스튜디오 진입 전 신뢰감과 사용성이 부족합니다.

구현 범위

  • macOS 인증 진입 화면을 새로 설계하고 Apple, Google, Email을 한 흐름으로 통합
  • Email 회원가입: 이메일/비밀번호 입력 → 인증 메일 발송 → 6자리 인증 코드 입력 → 완료
  • Email 로그인: 이메일/비밀번호 입력 → access/refresh token 저장 후 스튜디오 진입
  • OAuth: 기존 /auth/apple, /auth/google 계약과 현재 연동을 유지하면서 새 UI에 연결
  • 인증 실패, 만료된 코드, 중복 이메일, 네트워크 오류, 재시도, 진행 중 중복 클릭 방지
  • access/refresh token은 macOS Keychain에 저장하고 로그아웃 시 정리
  • macOS 키보드 포커스, Return 제출, VoiceOver 레이블, light/dark appearance 대응

계약 영향

  • 없음. 기존 서버 endpoint와 payload를 사용합니다.
  • Email native endpoint: POST /auth/native/sign-up, POST /auth/native/verify-email, POST /auth/sign-in
  • OAuth endpoint: POST /auth/apple, POST /auth/google

완료 조건

  • macOS 인증 화면에서 Apple/Google/Email 선택지가 하나의 시각 체계로 보인다.
  • Email 신규 사용자가 인증 코드 확인 후 계정을 완료할 수 있다.
  • Email 기존 사용자가 로그인 후 방송 스튜디오에 진입한다.
  • Apple/Google 성공·실패·취소·로딩 상태가 일관되게 표시된다.
  • 서버 계약을 변경하지 않고 token을 Keychain에 저장/복원/삭제한다.
  • 오류 상태에서 재시도할 수 있고 비밀번호·인증 코드가 로그에 노출되지 않는다.
  • macOS focused build/test 및 git diff --check를 통과한다.

디자인 레퍼런스

Metadata

Metadata

Assignees

Labels

feat새 기능 개발

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions