티스토리 뷰

iOS

iOS ) Sign in with Apple (2)

Zedd0202 2019. 9. 22. 20:17
반응형


안녕하세요 :) Zedd입니다.

Sign In with Apple 2탄..!!! 공부해봅시당.




Sign in with Apple


 

Sign In with Apple (1)에서 



딱 이거까지 띄우고 끝났는데요,

이제 진짜 로그인 해봅시댜


저번ㅇㅔ 채택해준 


이 친구

이 친구는 인증요청 결과에 대한 정보를 제공하기 위한 인터페이스인데요, 


이런 메소드들이 있습니다. 

오류가 안난걸 보니 메소드들이 옵셔널이겠군여



ㅇㅋ


일단 로그인에 성공하면 받을 수 있는 Response에는 여러가지가 있씁니다.

이만큼..!!

자 일단 처음으로 로그인을 하면, 응답을 줍니다. 

ASAuthorizationAppleIDCredential로 캐스팅을 한 부분을 볼 수 있는데요. 

credential은 프로토콜 타입입니당.



암튼 ASAuthorizationAppleIDCredential에 모가 들어있냐면


이만큼..! 들어이씀

fullName과 email은 뭐 알테고, 가장 중요한 정보(?)는 "user"입니다. 유니크 하거든요


그럼


이렇게 출력하게 시키고, 


암튼 드디어;;; 로그인을 한번 해보겠습니다.



아~~나 이름이랑 이메일때문에 동영상도 못찍겠네. 

암튼 지금 Continue With Password가 활성화가 안되어있죠? 

내가 이름과 이메일을 요구했는데, 이메일을 체크 안했기 때문입미다.


그리고 이름도 수정 할 수 있습니다ㅣ!!!

이름옆에 x버튼 있죠??



올ㅋ



이렇게 일단 해줍싣.





활성화 됐지

눌러봅시다 후하후하 

폰으로 하면 페이스 ID나 지문으로 할텐데,..시뮬이라 패스워드 쳐야함ㅎ



패스워드 치는 창 궁금할까바..


암튼 하고나면



잘 나옵니다.


뭐 키체인에 등록하고..뭐 그런거는 안할게요zzzz 일단 userIdentifier는 복사해두겠습니다. 다시 로그인해도 이 userIdentifier는 똑같거든요!


자 그럼 우리는 음 일단 지금 "가입"을 한거에요!

가입 한번 했으면 다음 앱 실행에서는 또 로그인 화면 뜨면 안되자나요 그쵸


==================================================================================


네..안녕하세요. Sign In with Apple (1) 쓰고 뭐 다음날인가 부터 이거 쓰기 시작했던 것 같은데, 여기서 제가 막힌이유는 분명히 가입을 했는데 가입이 안된것 처럼 동작을 했기 때문입니다.....그래서 저는 시뮬레이터 이슈겠거니 하고 이 글을 묻어놨....ㅎㅎ


제 폰을 iOS 13으로 업데이트도 했으니....제 폰에서 한번 해볼게요.



다.크.모.드

암튼
출력결과는?? 


혹시 모르니까 가림 ㅎ

email이 private~ 같이 나온건 제가 로그인 할 때"나의 이메일 가리기"를 해서 그렇습니다!




자 그럼 우리가 지금 "가입"ㅇ을 했으니까 

이제 뭐 해야되요


나 이제 이 앱에 가입했으니까

뭐 앱이 다시 실행되면 저 sign in with apple이 안나와야 할거 아녀;;;


그러니까 즉 내가 이 앱에(?) 가입된 상태인지 아닌지 판별을 해야한다는 소리입니다.

제가 여기서 막혔었는데..

자 일단 WWDC 키노트를 봐봅시다. 




getCredentialState에 파라미터로 user identifier를 넣죠? 
ㅇㅇ 해당 user identifier가 뭐 가입된 상태인지 뭐 아직 가입이 안된건지 등등을 판별 할 수 있습니다.
저는 AppDelegate에서 해줘볼게요. 


지금 제가 가린 부분이 user identifier에요! 

아까 복붙 못해놓으셨어도 괜찮아요!!!!

다시 Sign in with apple버튼 누르면, 다시 가입되는게 아니라



얘가 나 이미 가입했다는걸 당연히 압니다. 

그리고 항상 똑같은 user identifier가 나오니 print문 찍어서 복사하세요! 


헉 아니 전 예제라서 복붙;;;으로 처리를 하는건데, 제대로된 프로젝트라면..이러면 안되겠죠....????????


네..암튼 저번에 시뮬레이터에서 할 때는 계ㅔㅔㅔㅔㅔ속 notFound가 나오는거에요. 
분명히 가입을 했는데 ㅠㅠㅠㅠㅠ
아무튼 지금은..


^_^


그래서 정말 명시적으로 각 case가 나뉘어져 있으니까..각 case별 처리는 어렵지 않을 듯 합니다. 



그럼..일단 가입 플로우는 대충 다 본 것 같으니까 탈퇴를 해볼게요~

앜 일단 앱을 삭제를 한번 해볼게요. 그리고 다시 빌드해서 앱을 올려보겠습니다. 


오..! 그래도

authorized가 뜨네요. 

Sign in with apple버튼 누르면



아까랑 똑같이 가입없이..

아 근데 당연한가? 페더리긴가 팀쿡인가 디바이스가 달라도(즉 해당 디바이스에 앱이 없고 그 디바이스에서 다시 깔아도) 된다~~ 이런식으로 말했었던것 같은데.....

암튼 그렇습ㄴ디ㅏ...!!


그럼 진짜 탈퇴 해보겠삼



위 그림을 따라 이동해주세요.

그러면



이렇게 나오게 됩니다..!!!



어 이상하네.......뭐지........

뭐지..나 이걸로는 오늘 가입한거 아닌가..? 왜 날짜가..

뭐지? 저기 제가 가린 부분도 제 실명이;;; 저는 아까 홍길동으로 가입했는데 말이죠....


음..일단.. Apple ID 사용 중단을 눌러볼게요.



그러고 다시 빌드하고 올려보니까



revoked가 나왔군요. 암튼 잘 되는군요..!!!


지금은 다시 빌드;;했지만, 사용자가 앱을 사용하다가 background로 가서, 애플 아이디 사용 중단을 하고 다시 앱 foreground로 돌아왔을때도 있을거아님

뭐 iPadOS multi window에서는; 

둘 다 띄울수도 있겠구요?....... 설정 | 앱 이런식으로 

암튼 그때 애플 아이디 사용 중단하면 뭔가 앱이 반응을 해야할거아님 



Notification이 있다는 사실~~


아나 ㅎ 이걸로 그냥 revoked 테스트 할 걸 ㅎ...!!!

엇 근데...

저는 애플 아이디 사용 중단을 눌렀잖아요.. 그럼 다시 sign in with apple버튼 누르면

그 처음 화면..



ㄹ이거 나와서 다시 가입하는 건 줄 알았는데..



이화면이 또 뜨네요?..

그리고 가입하면, user identifier는 나오고, full name이랑 email은 



이렇게 비어서 나오네요;; 근데 다시 빌드해보면 authorized떠요...



흠...암튼..다시 가입했으니 Notification을 걸고..

아니 애플 코드 



복붙했는데



아니 야 이름을 바꿨으면 그 rename 그 warning그거 띄워줘야하는거 아냐?

음 이름이

이걸로 바뀐것 같은데..



아니 먼데..제가 잘못하는건가욥...!

저 



import도 잘 했는디...


아~~~ 정말 해볼려고 그랬는데~~ 어쩔 수 없이 못하게 됐네요~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

이렇게 아쉬울수가~₩~~~~~~


네...뭐 제가 찾으면 여기에다가 추가할게요!!!

그럼 도움이 되었길 바라며....

남은 주말 잘보내세요 

반응형

'iOS' 카테고리의 다른 글

iOS ) UIBezierPath (2) - Attribute  (3) 2019.10.02
iOS ) UIBezierPath (1)  (7) 2019.09.30
iOS 13 달라진 점!!  (4) 2019.09.20
iOS ) adjustedContentInset / contentInsetAdjustmentBehavior  (1) 2019.09.12
iOS ) ContentInset  (2) 2019.09.08