개발일지

Android in A..Z - OAuth (Naver) 본문

Android (안드로이드)/OAuth

Android in A..Z - OAuth (Naver)

강태종 2021. 5. 7. 14:43

1. 프로젝트 등록

Naver Developer에 프로젝트를 등록하여 API Key를 받는다.

developers.naver.com/apps/#/register?api=nvlogin

 

애플리케이션 - NAVER Developers

 

developers.naver.com


2. Gradle 설정

Dependency

<!-- might use implementation in Android Studio 3.0(Gradle 4.1) -->
compile ('com.naver.nid:naveridlogin-android-sdk:4.2.6')

3. Key 등록하기

Naver Developer에서 제공받은 Key를 string.xml에 입력한다.

<resources>
    <string name="naver_client_id">glttGD4shdbN2GSF94OB</string>
    <string name="naver_client_secret">jBDdCtOOeR</string>
</resources>

4. OAuth 초기화하기

Login을 진행하기 전에 초기화 단계가 필요하다.

OAuthLogin.getInstance().init(this@MainActivity, getString(R.string.naver_client_id), getString(R.string.naver_client_secret), "HelloWorld")

5. OAuthLoginHandler 구현

Login 진행시 Handler가 Callback형식으로 호출된다.

private class NaverHandler(private val context: Context) : OAuthLoginHandler() {
    override fun run(success: Boolean) {
        if (success) {
            Log.d("PASS", "Naver Login Success")
            with(OAuthLogin.getInstance()) {
                Log.d("PASS", "Token : ${getAccessToken(context)}")
                CoroutineScope(Dispatchers.IO).launch {
                    val result = requestApi(context, getAccessToken(context), "https://openapi.naver.com/v1/nid/me")
                    Log.d("PASS", result)
                }
            }
        } else {
            Log.e("PASS", "Naver Login Fail")
        }
    }
}

6. 로그인 진행

startOauthLoginActivity(this@MainActivity, NaverHandler(this@MainActivity))

7. 로그아웃

OAuthLogin.getInstance().logoutAndDeleteToken(requireContext())

Git (예제코드)

github.com/KangTaeJong98/Example/tree/main/Android/OAuth

 

KangTaeJong98/Example

My Example Code. Contribute to KangTaeJong98/Example development by creating an account on GitHub.

github.com

 

'Android (안드로이드) > OAuth' 카테고리의 다른 글

Android in A..Z - OAuth (Kakao)  (0) 2021.05.05
Android in A..Z - OAuth (People)  (0) 2021.05.04
Android in A..Z - OAuth (Google)  (2) 2021.05.04
Comments