애플 로그인 구현하기 — 2

EmilY
6 min readJan 4, 2020

--

https://medium.com/%40twih1203/%EC%95%A0%ED%94%8C-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0-sign-in-with-apple-1-5db7606867

전편에 이어서 Sign In With Apple 구현을 해보겠습니다

참고로, Apple Document를 참조했습니다

버튼 만들기

Main.storyboard에 UIView 추가

구분을 위해 색상을 설정하고

사이즈 상관없이 Horizontal, Vertical 제약과 width, height 제약 추가

ViewController로 가서 UIView를 IBOutlet으로 연결

signInView라는 이름으로 연결해준다

그러면 화면설계는 끝!

ViewController에서 AuthenticationServices를 import 해준다

그리고 애플 로그인 버튼을 구현해줄 메소드 addButton() 추가

ASAuthorizationAppleIDButton으로 signIn 버튼 구현

버튼 스타일은 authorizationButtonStyle로 선택가능

(흰색, 까만색, 검은 테두리 흰색 총 세가지 있음)

button.addTarget으로 누를때 실행할 동작 설정

(handleAppleSignInButton은 아직 구현하기 전이므로 경고가 뜬다!)

addSubview로 애플 로그인 버튼을

미리 만들어놓은 signInView에 추가해준다

그 뒤에 viewDidLoad()에 addButton() 메소드 추가

다음으로 버튼을 누를때 수행되는 핸들러 handleAppleSignInButton 메소드 구현

첫번째 줄에서 request 생성

요청 날릴 것은 fullName, email 두 가지로 설정해준다

그리고 세번째 줄에서 request를 보내줄 controller 생성

controller의 delegate와 presentationContextProvider 설정 후,

performReqeusts()로 요청을 보낸다

중간 결과 확인

정확한 결과 확인을 위해 다소 강렬한 색상으로 배경 변경..

결과

버튼 구현은 끝!

이제 결과를 받아오도록 Controller Delegate 구현 (Complete, Error)

ViewController를 extension하여 ASAuthorizationControllerDelegate를 상속한다

authorizationController의 didCompleteWithAuthorization, didCompleteWithError 메소드 두 가지 생성

  • didCompleteWithAuthorization은 authorization이 성공 후 동작
  • didCompleteWithError는 authorization 실패 시 구현되는 동작

authorizationController(controller:didCompleteWithAuthorization:)

해당 함수에서 authorization 파라미터는 객체로, auth에 대한 모든 정보를 가진다

우리는 그 중에서도 ASAuthorizationAppleIDCredential을 이용!

credential은 다음과 같은 사용자 정보를 가진 인스턴스 프로퍼티다

자세한 정보는 Apple Document 참조 (https://developer.apple.com/documentation/authenticationservices/asauthorizationappleidcredential)

원하는 정보를 받아와서 처리할 수 있다는 점!

그럼 여기서 구현은 끝이다…

다음으로는 Apple Sign In에 대한 다른 정보를 포스팅할 예정

### Reference

Get Started

--

--

EmilY
EmilY

Written by EmilY

iOS 하나부터 열까지 이해하기

No responses yet