Skip to content

[#8] 애플 소셜 로그인#31

Merged
manbron236 merged 2 commits intodevelopfrom
feat/appleSocialLogin/#8
Jan 7, 2026
Merged

[#8] 애플 소셜 로그인#31
manbron236 merged 2 commits intodevelopfrom
feat/appleSocialLogin/#8

Conversation

@manbron236
Copy link
Contributor

🧩 구현/변경 사항

  • 애플 소셜 로그인 구현
  • 이전 코드에서 서비스단 안의 사용자 시나리오상 info, 에러 관련 로그 삭제

사용자 시나리오(UML)


🧪 테스트 결과

Apple로그인테스트이미지
  • Frontend expo 이슈로 따로 새 프로젝트 생성해서 Apple 로그인 테스트만 진행해봤습니다.

참고

  • Frontend expo 이슈로 작업이 지연되면서 다른 방법 알아보는 중입니다.
  • providerId를 Member 엔티티에 추가해서 이메일 변경, 이메일 숨기기 여부와 관계없이 안정적으로 사용자 식별 가능하도록 했습니다
  • AppleProperties을 통해 yaml 설정값과 자동 매핑할 수 있도록 작성했습니다

ApplePublicKey의 각 요소 설명입니다.

  • keys: 공개키 목록
  • kty: Key Type - "RSA"
  • kid: Key ID - identityToken 헤더의 kid와 매칭해서 어떤 키를 쓸지 결정
  • use: 용도 - "sig" (서명 검증용)
  • alg: Algorithm - "RS256"
  • n: RSA 공개키의 modulus (Base64URL 인코딩)
  • e: RSA 공개키의 exponent (Base64URL 인코딩)

AppleTokenVerifier는 토큰 검증과 사용자 정보를 추출하는 역할을 수행합니다

  1. identityToken 받음
  2. 토큰 헤더에서 kid, alg 추출
  3. Apple 공개키 목록에서 매칭되는 키 찾기
  4. 공개키 생성 (RSA PublicKey 객체)
  5. 토큰 검증 및 Claims 추출
  6. Claims 반환 (sub, email 등 포함)

💬 리뷰 받고 싶은 부분 (옵션)

  • OAuthConfig을 통해 AppleProperties를 활성화하고 Bean으로 등록하도록 설정했는데 좋은 방법인지 궁금합니다.

@manbron236 manbron236 self-assigned this Jan 6, 2026
@manbron236 manbron236 added the enhancement New feature or request label Jan 6, 2026
@manbron236 manbron236 linked an issue Jan 6, 2026 that may be closed by this pull request
3 tasks
Copy link
Contributor

@Bucoco Bucoco left a comment

Choose a reason for hiding this comment

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

기존 코드와 다르게 apple만 서비스를 따로 분리해서 로직을 처리한 이유가 궁금합니다. 그리고 구글 로그인 쪽에선 따로 provider id를 사용하지 않는건가요?

@manbron236
Copy link
Contributor Author

기존 코드와 다르게 apple만 서비스를 따로 분리해서 로직을 처리한 이유가 궁금합니다. 그리고 구글 로그인 쪽에선 따로 provider id를 사용하지 않는건가요?

처음에는 구글이랑 애플이랑 로그인 시 필요한 데이터와 서비스 로직 방식이 다를 것 같아서 분리시켜봤는데 추후에 구글 로그인 작업할때 크게 다르지 않다면 같이 병합해서 작업할 수 있도록 설계하겠습니다

Copy link
Contributor

@Bucoco Bucoco left a comment

Choose a reason for hiding this comment

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

provider id가 애플에서만 사용되는 거라면 정규화해서 테이블 분리하는게 좋아보입니다. 고생하셨습니다.

@manbron236 manbron236 merged commit 51f1803 into develop Jan 7, 2026
21 of 28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BE-MEMBER] 소셜 로그인 (애플)

2 participants