안녕하세요!
허접 샴푸입니다.
요새 통 바빠서 포스트를 작성하지 못했습니다.
이번 편은 안드로이드에서 애플 로그인을 구현하기 위해 필요한 안드로이드 앱 쪽을 살펴보겠습니다.
거두절미하고 어떻게 구현하는지 바로 알아보도록 하겠습니다.
[START]
1. Const.kt 작성 (상수 설정)
[APPLE_CLIENT_ID]
APPLE_CLIENT_ID는 https://developer.apple.com/account/resources/identifiers/list/serviceId로 들어가면
IDENTIFIER이라고 되어있는 놈의 값입니다.
[APPLE_REDIRECT_URI]
APPLE_REDIRECT_URI는 1편에서 말씀드린 Return URLs에 작성한 주소를 적습니다.
2. Interaction.kt 인터페이스 작성
아래 로그인 창에서 email과 같은 원하는 값을 받아오면 위 인터페이스를 통해 해당 값을 View단으로 뿌려주기 위한 인터페이스입니다.
3. AppleSignInDialog.kt 생성 (로그인 창)
- webView 객체를 생성하여 loadUrl을 통해 apple 로그인 화면을 웹뷰에 띄웁니다.
- onPageFinished 쪽에서 2편에서 설정한 header("LOCATION: ?status=success&email={$claims->email}");에 따라 uri.getQueryParameter("email")을 이용하여 email 값을 받아옵니다.
- fail이건 success이건 작업이 완료되었기 때문에 dismiss()를 이용하여 로그인 화면 다이얼로그를 종료시킵니다.
- 이메일을 구하면 interface를 통해 값을 넘겨 View에 값을 넘겨줍니다.
4. View에서 다이얼로그 호출하기 (저는 Fragment에서 호출하였습니다.)
[실제 구동되는 화면(결과)]
애플 로그인과 관련하여 실제 코드를 Git에 올리려고 하였으나, 제약사항(Key, Id 등 값이 없으면 구동이 되지 않음)이 많아
제가 직접 구현한 실제 서비스의 화면을 보여드립니다.
위는 성공적으로 로그인 후 서버로부터 email 값을 header로 받아와 해당 값을 이용하여 앱에 로그인하는 화면입니다.
네 저는 현재 베리픽이라는 서비스의 앱 개발자이며 계속 오류를 잡아나가고 있습니다.
공식 사이트: http://berrypic.io/comingsoon/
개발하면서 몰랐던 부분 어려웠던 부분이 있어도 물어볼 곳이 없었으며, 맨땅에 계속 헤딩 중입니다.
저 같은 개발자분들이 있을 것 같아 최대한 블로그를 통해 많은 정보를 공유하고자 함이 제 목표입니다.
질문이 있으시면 댓글에 남겨주시기 바랍니다.
온라인 문의 또한 가능하며 댓글에 이메일 주소 혹은 카카오톡 아이디를 비밀글로 요청해주시기 바랍니다.
'[Android] > 허접 Programming Tips' 카테고리의 다른 글
[소셜로그인] 안드로이드 애플 로그인(Sign in with apple) 구현하기 2편 (1) | 2020.04.23 |
---|---|
[Tip] ViewModel의 LiveData를 작성하는 방법 (1) | 2020.04.21 |
[소셜로그인] 안드로이드 애플 로그인(Sign in with apple) 구현하기 1편 (1) | 2020.04.20 |
[Navigation] Android Jetpack Navigation + BottomNavigationView (2 / 2) (9) | 2020.04.04 |
[Navigation] Android Jetpack Navigation + BottomNavigationView (1 / 2) (9) | 2020.04.03 |