애플 api 사용 등록
(1) 애플 개발자센터 : https://developer.apple.com/

(2) 계정 생성 및 도메인 등록
① Account > Identifiers > App ID(Bundle ID) 생성
-애플로그인을 하기 위해서는 AppId, Key, Service ID를 생성해야 함.
-Bundle ID : 도메인(또는 프로젝트 패키지)의 역순을 사용
-하단에 Sign In with Apple을 클릭
② Key 생성
- Key 생성할 때 암호화 파일을 다운받게 되는데 재다운로드 불가능하기 때문에 반드시 다운로드
③ Indentifiers > Services ID 생성
- Services ID는 보통 App ID(Bundle ID)를 역순으로 등록
④ Domain 등록

⑤ Return URLs 등록
참고) https://learn.microsoft.com/ko-kr/azure/app-service/configure-authentication-provider-apple
애플 로그인 프로세스
(1) 애플 로그인 요청 -> 사용자에게 권한 요청 및 동의 -> authrization code 요청 (GET)
https://appleid.apple.com/auth/authorize
?client_id={AppleClientId}
&redirect_uri={AppleRedirectUri}
&response_type=code%20id_token
&scope=name%20email
&response_mode=form_post
*client_id 는 애플 개발자센터에서 생성한 Service ID
*scope는 사용자 정보 요청값을 의미하고 name과 email만 가능
(2) authrization code와 함께 승인된 redirect_uri로 리다이렉트
(3) 클라이언트 암호 생성 필요 -> client_secret 생성
- 키 다운로드 페이지에서 다운로드한 키를 .p8(PKCS#8) 파일로 다운로드
- Microsoft.IdentityModel.Tokens NuGet 패키지를 사용하여 클라이언트 암호 JWT 서명
{
"alg": "ES256",
"kid": "URKEYID001",
}.{
"sub": "com.yourcompany.app1",
"nbf": 1560203207,
"exp": 1560289607,
"iss": "ABC123DEFG",
"aud": "https://appleid.apple.com"
}.[Signature]
*kid : Apple 개발자 계정으로 발급받은 key ID
*iss : Apple 개발자 팀 ID
*sub: Service ID
(4) token 값 요청 (POST)
-https://appleid.apple.com/auth/token
*content-type : x-www-form-urlencoded
*body의 다음 정보를 입력하고 요청
grant_type=authorization_code
&client_id={AppleClientId}
&client_secret={jwtSecretToken}
&code={code}
&redirect_uri={AppleRedirectUri}
(5) 사용자의 애플 계정 정보가 담긴 JSON 문자열을 파싱
{
"sub": "사용자번호",
"email": "이메일"
}
(6) 애플 사용자 정보가 db내에 있는지 조회
(7) db내에 애플 사용자 정보가 있으면 로그인, 없다면 회원가입 페이지로 이동
Apple Developer
There’s never been a better time to develop for Apple platforms.
developer.apple.com
'프로그래밍 언어 > C#' 카테고리의 다른 글
| 구글 api 사용하여 SNS 로그인 연동 (0) | 2023.09.20 |
|---|---|
| [ASP.NET][C#] Response 개체 (0) | 2023.02.17 |
| [ASP.NET][C#] Request 개체 (0) | 2023.02.17 |
| [ASP.NET][C#] Web Forms 이벤트 처리 (0) | 2023.02.16 |
| [ASP.NET][C#] postback 포스트백 (0) | 2023.02.16 |
댓글