애플 로그인 연동: Sign in with Apple 설정과 회원 관리
애플 로그인 설정과 이메일 가리기·탈퇴 처리를 정리합니다.

안녕하세요. 사랑받는 IT 프로덕트의 첫걸음, 똑똑한개발자입니다.
Sign in with Apple은 Apple 계정으로 서비스에 로그인하는 기능입니다. 이용자가 이메일 가리기를 선택할 수 있고 앱과 웹의 설정 방식도 다릅니다. 오늘은 적용 조건과 설정 순서, 토큰 검증과 회원 탈퇴 처리를 알아보겠습니다.
애플 로그인 연동, 지금도 필수일까요

2024년 개정으로 '애플 로그인 의무'가 '동등한 옵션 의무'로 바뀌었습니다.
애플은 2024년 1월 25일 개발자 뉴스에서 소셜 로그인을 쓰는 앱이 Sign in with Apple 대신 개인정보 보호에 초점을 둔 동등한 로그인 서비스를 둘 수 있다고 발표했고, 2026년 6월 8일 업데이트된 가이드라인 4.8도 이 구조를 그대로 따릅니다.
그 옵션은 세 가지 조건을 모두 갖춰야 합니다.
수집 정보는 이름과 이메일로 제한하고 가입 때 이메일을 숨길 수 있어야 하며 동의 없이 앱 이용 기록을 광고 목적으로 수집하지 않아야 합니다. Sign in with Apple은 이러한 조건을 충족하는 옵션 중 하나입니다. 자사 계정 시스템만 쓰는 앱은 예외입니다.
이메일 가리기를 고른 사용자에게는 메일이 그냥 가지 않습니다

사용자가 이메일 가리기(Private Email Relay)를 고르면 서버에는 @privaterelay.appleid.com 주소가 들어옵니다. 애플이 이메일 대신 user identifier로 사용자를 식별하라고 안내하는 이유입니다.
이 주소로 가입 안내 메일을 보내려면 Certificates, Identifiers & Profiles의 Services에서 Sign in with Apple for Email Communication을 열고 Email Sources에 발신 도메인을 등록해야 합니다. 도메인은 SPF나 DKIM 인증을 통과해야 하며 등록하지 않은 발신원의 메일은 반송됩니다.
Sign in with Apple 연동은 다섯 단계로 이어집니다

먼저 App ID에서 Sign in with Apple을 켭니다.
Xcode의 Capability나 Apple Developer의 Identifiers에서 활성화하는데, 처음 켜는 앱이면 primary App ID로 지정합니다.
웹 로그인이 필요하면 Services ID에 도메인과 Return URL을 등록합니다.
넣는 위치는 Services ID의 Website URLs이고 Return URL은 scheme, host, path를 갖춘 절대 주소여야 합니다. 계정 변경·탈퇴와 관련한 server-to-server 알림 설정도 해당 등록 안내에 맞춰 확인합니다.
Keys에서 .p8 키를 받습니다.
primary App ID 하나에 키는 최대 두 개까지 만들 수 있는데, 파일은 한 번만 내려받을 수 있습니다.
서버가 client_secret JWT를 만듭니다.
ES256, Key ID(kid), Team ID(iss), https://appleid.apple.com(aud), App ID나 Services ID(sub)를 넣어 .p8 키로 서명하며 만료 기간은 최대 6개월입니다.
마지막으로 identity token을 서버에서 검증합니다.
확인할 항목은 서명, nonce, iss, aud, exp입니다. authorization code는 일회용이라 5분 안에 /auth/token으로 교환해야 합니다.

구분 | 앱(iOS) | 웹 |
|---|---|---|
client_id | App ID(번들 ID) | Services ID |
도메인·Return URL | 등록하지 않음 | Website URLs에 필수 등록 |
로그인 계정 | 기기에 로그인된 iCloud 계정만 | 모든 Apple 계정 |
identity token | 앱이 바로 받아 서버로 전달 | authorization code를 검증해 받음 |
사용자 이름은 첫 로그인 때 한 번만 옵니다
애플 공식 문서에 따르면 이름과 이메일은 첫 로그인 때만 전달되고, 그 뒤로는 이메일만 identity token에 담길 뿐 이름은 오지 않습니다. 첫 응답을 놓치면 사용자가 연결을 끊고 다시 연결하기 전까지 이름을 받을 수 없으니 받는 즉시 저장해야 합니다. 테스트 중 이름이 비어 있다면 대부분 이 1회를 이미 쓴 경우입니다.
회원 탈퇴에는 토큰 revoke까지 들어갑니다
가이드라인 5.1.1(v)는 계정을 만들 수 있는 앱에 앱 안 계정 삭제를 요구하고, 애플의 계정 삭제 안내는 Sign in with Apple을 지원하는 앱이라면 REST API로 토큰을 revoke하라고 덧붙입니다. https://appleid.apple.com/auth/revoke에 refresh token이나 access token을 보내는 방식이니 가입 시점부터 토큰을 보관하도록 설계해 두어야 합니다.

세부 항목과 최신 적용 조건은 Sign in with Apple 개발 문서를 참고해 보세요.
애플 로그인부터 계정 관리까지 자연스럽게

회원 가입과 인증을 하나씩 붙이다 보면 화면뿐 아니라 데이터와 운영 방식도 함께 살펴보게 됩니다. 지금 서비스에 필요한 범위부터 차근차근 정리해볼 수 있습니다.
똑똑한개발자는 UX/UI 디자인과 웹·앱 개발을 함께 진행합니다. 사용자가 이용하는 화면과 운영에 필요한 기능을 연결해 서비스를 만들어가는 과정을 돕습니다.
회원 가입과 인증을 준비하면서 궁금한 점이 있다면 아래 똑똑한개발자 링크로 편하게 이야기 남겨주세요. 함께 살펴보겠습니다. 감사합니다. :)
프로젝트에 필요한 내용을 함께 살펴봅니다.
https://www.toktokhan.dev/contact?utm_source=landing&utm_campaign=apple-login&utm_medium=apple-login&utm_term=%EC%95%A0%ED%94%8C-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%97%B0%EB%8F%99