본문 바로가기
프로그래밍 언어/C#

애플 api 사용하여 SNS 로그인 연동

by Nataliaa 2023. 9. 20.

애플 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

 

 

 

 

 

 

 

댓글