Android 앱에서 Kii Cloud와 Facebook 인증을 연결하는 방법

소개



Kii Cloud에서 인증을 구현하는 Android 앱에 Facebook 인증을 추가해 보았습니다. 초보자의 자신은 공식 사이트 작성 대로 했던 것만으로는 잘 되지 않았기 때문에, 집착한 순서를 메모하고 있습니다.

또한 Kii Cloud 연동을 위해서는 htps : //에서 ゔぇぺぺr. 꽉. 코m/에서 사용자 등록 후 Android 앱을 등록하고 SDK를 다운로드해야합니다.

Facebook 애플리케이션 ID 게시



먼저 Facebook App ID를 취득하기 위해facebook for Developer에 로그인해, 개발자로서 등록한 적이 없으면 「Register Now」버튼으로부터 등록을 개시합니다. 처음에는 SMS 또는 전화로 인증해야 하는 것 같습니다. 그런 다음 +Add A New App 버튼에서 플랫폼으로 Android를 선택하고 새 앱을 추가합니다. 그런 다음 마법사에 따라 설정을 완료하면 App Id와 App Secret이 게시됩니다.

Kii 애플리케이션 설정



Facebook App ID가 발급되면 Kii Cloud 개발자 포털에서 Facebook App ID를 등록합니다. 애플리케이션 콘솔에서 대상 앱을 선택하고 오른쪽 상단의 톱니바퀴 아이콘에서 "Edit->Setting"을 클릭하여 앱 설정 화면을 엽니다.


그런 다음 "Social Network Connector"섹션에서 Facebook App ID 및 App Secret을 설정합니다.


Android Studio에서 사전 준비



AndroidManifest.xml에 다음 두 가지 활동을 추가합니다.<activity
android:name="com.kii.cloud.storage.social.connector.KiiSocialNetworkConnectorLoginActivity"
android:label="@string/app_name" />
<activity android:name="com.facebook.LoginActivity" />
build.grade에도 다음을 추가합니다.compile 'com.facebook.android:facebook-android-sdk:3.20.0'
... 그리고 여기까지는 특별히 문제없이 진행합니다.

인증 부분 구현



공식 문서에 의하면 「코드에 몇 줄 추가하는 것만으로 간단하게 실현할 수 있습니다」라고 합니다만, 여기에 기재되어 있는 인증 부분을 샘플대로 써도 움직이지 않습니다. 거기서 여러가지 소식을 발견해, 액세스 토큰의 취득이 필요하다는 것. GitHub 샘플을 내 앱 ID로 다시 작성하면 문제없이 Facebook 인증이 가능했습니다.

보충: 기존 인증과의 공존



그러나 문제는 기존 Kii 인증과 어떻게 공존할 것인가입니다. Facebook과 Kii의 액세스 토큰 개념의 차이를 모르게 혼란스러웠지만, 나름대로 여러가지 해석했더니 아래와 같이 동작하고 있는 것 같습니다(잘못되면 지적해 주세요).

1) Facebook으로 로그인
2) Kii에 사용자가 만들어지고 액세스 토큰도 가능
3) 이 이후는 Facebook은 의식할 필요 없음

그러나 이것을 믿고 로그아웃은 Kii의 인증만 의식한 구현으로 하고 있으면 앱에서 로그인할 수 없다는 문제가 발생했습니다.

거기서 로그아웃 처리에 아래와 같은 facebook 로그아웃 처리를 추가하면 무사히 로그아웃 할 수 있었습니다.
            Session s = Session.getActiveSession();
            s.closeAndClearTokenInformation();
            KiiUser.logOut();

아무래도 GitHub의 샘플에서는 facebook의 세션이 남아 있었을 경우에 자동 로그인하는 친절한 구조가 되어 있었기 때문입니다.

좋은 웹페이지 즐겨찾기