Skip to content

Conversation

@dh2906
Copy link
Contributor

@dh2906 dh2906 commented Jan 15, 2026

🔍 개요


🚀 주요 변경 내용

  • 애플 OAuth 로그인 기능을 추가했습니다.

  • 로그인 시 최초 1회만 이메일을 제공하고 provider_id를 통해 개인 식별을 해서 유저 관련 테이블에 컬럼을 추가했습니다.

  • 인증 성공 후 코드 교환은 JWT 방식으로 진행하여 관련 클래스를 생성했습니다.

  • JWT의 시크릿 키 같은 경우 p8 이라는 파일을 제공하여 서버에 올려둘 예정입니다.


🔄 로그인 플로우

  1. 사용자가 애플 로그인 버튼 클릭 → 애플 인증 페이지로 이동

  2. 애플이 authorization code를 백엔드 콜백으로 전달

  3. 백엔드가 client_secret(JWT) 생성 후 code 교환

  4. OIDC를 파싱해서 sub(provider_id) 등 사용자 정보 획득

  5. 성공 핸들러에서 사용자 조회

    • 등록된 유저면 세션 생성 후 /home 리다이렉트
    • 미등록 유저면 unregistered_user 저장/조회 후 세션(이메일/프로바이더/프로바이더ID) 구성 → /signup 리다이렉트
  6. /signup 호출 시 세션 값으로 회원가입 완료 → 정상 유저 세션 생성


💬 참고 사항

  • 애플은 정책상 개발 환경에서 테스트 시 localhost를 사용할 수 없어 ngrok을 통해 임시 도메인을 발급받고 yml 파일의 backend.base-url 경로를 변경 후 확인해주셔야 합니다.

  • 테스트 시 p8 파일도 같이 다운받아야 합니다.


✅ Checklist (완료 조건)

  • 코드 스타일 가이드 준수
  • 테스트 코드 포함됨
  • Reviewers / Assignees / Labels 지정 완료
  • 보안 및 민감 정보 검증 (API 키, 환경 변수, 개인정보 등)

@dh2906 dh2906 requested a review from Soundbar91 January 15, 2026 10:47
@dh2906 dh2906 self-assigned this Jan 15, 2026
@dh2906 dh2906 added the 기능 새로운 기능을 개발합니다. label Jan 15, 2026
@dh2906 dh2906 merged commit 08d9d2a into main Jan 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

기능 새로운 기능을 개발합니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants