OAuth 2.0으로 구현하는 SNS 로그인 — Sign in with Apple (1) 환경설정
Sign in with Apple을 위해서는 아래와 같은 준비과정들이 필요합니다:
기본적으로 Sign in with Apple 기능을 활성화 하기 위해서는 App ID 하나만 설정해도 됩니다. 하지만 이미 존재하는 app에 연계된 웹 서비스에서 유저를 식별하기 위해서는 Service ID와 private key 설정이 별도로 필요합니다.
- App ID 활성화
- Service ID 생성
- Private key 생성
App ID 활성화
Apple Developer 홈페이지의 “Certificates, Identifiers & Profiles” 페이지에서 “Identifiers” 탭에 들어옵니다.
App ID를 생성해줍니다.
App을 선택해주고 넘어가겠습니다.
Bundle ID는 com.sign-in-with.demo.woo94 로 임의로 지어주겠습니다.
아래의 Capabilities 섹션에서 Sign in with Apple에 체크표시를 해주고 우측 상단의 Continue 버튼을 눌러줍니다.
그 다음 Register 버튼을 눌러서 App ID 생성을 마무리 해줍니다.
Service ID 생성
앞서는 “Identifiers” 탭에서 App ID를 생성해줬습니다. 이번에는 우측의 필터를 Service IDs로 변경해주고 + 버튼을 눌러줍니다.
Service ID로 identifier를 추가해주겠습니다.
Identifier로 “com.sign-in-with-apple.demo.web.woo94”를 사용해주겠습니다. Continue 이후에 Register 버튼을 눌러서 Service ID를 생성해줍니다.
리스트에서 방금 생성해준 Service ID를 선택해줍니다.
Sign in with Apple을 활성화 시켜주고 Configure 버튼을 눌러서 설정 팝업을 띄워줍니다.
Primary App ID로 App ID 활성화 과정에서 생성해준 App ID를 선택해줍니다.
그 다음 버셀에 배포한 웹 주소를 Domains and Subdomains란에 적어줍니다. 실제로는 https://social-login-demo.vercel.app 이지만, 여기에 https:// 를 붙여주면 invalid domain이라는 에러가 나옵니다..
social-login-demo.vercel.app
Return URLs에는 Authorization code와 Access Token(or ID token)을 교환할 서버의 주소를 적어줍니다:
https://social-login-demo.server-kit.com/oauth2/apple
Client에서 Authorization flow를 마치면 위의 주소로 POST 요청을 보내게 됩니다(다음 글에서 더 자세히 설명할 예정입니다!)
이제 Save를 눌러줍니다.
Private key 생성
Apple은 Sign in with Apple private key를 primary app과 연관짓습니다. Private key는 Sign in with Apple server와 통신을 할 때 developer token을 sign 할 때 사용됩니다(다음 글에서 자세하게 설명할 예정입니다!). 짧게 설명드리자면, Sign in with Apple server가 지금 어떤 App ID에 대한 요청을 처리하는지를 알게 하기 위한 목적입니다.
이번에는 “Certificates, Identifiers & Profiles”에서 Keys 탭으로 옵니다.
Key의 이름을 지어주시고 Sign in with Apple을 활성화 한 다음 Configure 버튼을 눌러줍니다.
Primary App ID를 이전에 만든 앱으로 설정해준 다음 Save 버튼을 눌러줍니다.
Register 버튼을 눌러서 Key를 등록시켜 줍니다.
Key는 오로지 한번만 다운로드 할 수 있기 때문에 신중하게 다운로드 해줍니다.
이제 모든 준비가 완료되었습니다.