애플로그인2 - Sign in with Apple (Objective C) 사용 중단 처리

요즘 애플로그인 작업을 하고 있습니다. 코드 자체는 길지도 않고 어렵지도 않은데... 인증서가 애드훅이라 테스트하는 과정이 힘드네요.

 

디바이스로 애플로그인을 해보면서 테스트를 해봤는데요. 애플로그인으로 앱에 접속한 상태일 때 계정 연결을 끊게 되었을 때 처리가 필요했습니다. 게임에서 로그아웃하는 게 아닌 아이폰 설정에서 하는 걸 말합니다.

 

 

아이폰 설정창으로 가보면 애플 계정에 연결된 앱들을 볼 수 있습니다. 계정에서 암호 및 보안을 눌러보면 내 Apple ID를 사용하는 앱을 볼 수 있습니다. 눌러줍시다.

 

 

현재 연결된 앱들인데요. 2번째는 애플 공식 예제입니다. 현재 작업하고 있는 앱은 가려뒀습니다. 앱을 눌러서 정보를 확인해 봅시다.

 

 

지금 애플계정으로 로그인된 상태입니다. 메일을 숨겼기 때문에 앱에서 수신한 이메일 주소가 privaterelay.appleid.com 으로 표시된 걸 볼 수 있습니다. 하단에 Apple ID 사용 중단을 누르게 되면 애플로그인이 해제 됩니다. 기존에 가지고 있던 user 를 통해서 확인을 하게 되면 revoke 가 나오는 걸 볼 수 있어요.

 

NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(handleSignInWithAppleStateChanged:) name:ASAuthorizationAppleIDProviderCredentialRevokedNotification object:nil];

- (void)handleSignInWithAppleStateChanged:(id)noti {
    NSLog(@"handleSignInWithAppleStateChanged");
    NSLog(@"애플 로그인 앱에서 해제");
    NSLog(@"%@", noti);
}

우선 Apple ID를 사용 중단했을 때에 노티를 받을 수 있게 등록을 해 주어야 합니다. 

  • ASAuthorizationAppleIDProviderCredentialRevokedNotification

애플 로그인이 해제되었을 때에 노티가 잘 오는지 확인해봐야겠죠? 애플 로그인이 되어있는 앱을 실행시키고 앞에서 설명한 방식으로 로그인을 해제해 보았습니다.

 

 

앞의 코드에서 로그를 찍어봤습니다. 해제 후 노티를 받아 로그가 잘 찍힌 걸 확인할 수 있습니다. 앱마다 처리 방식은 다르겠지만 저는 로그아웃을 시키는 처리를 할 듯합니다. SDK API를 이용해서 로그아웃하는 방법은 없더라고요. 저희 게임 서버와 접속을 끊고 저장된 user 값을 지우는 형태로 작업할 듯합니다. 

 

 

그리드형(광고전용)

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band

댓글

Designed by JB FACTORY