네이버 아이디 로그인

h_hi·2021년 3월 13일
0

android

목록 보기
3/6

네이버 API KEY 생성

네이버 developer 사이트에 들어가서 어플리케이션을 등록하고 api key를 생성합니다. 생성한 api key 는 보안을 위해 key.properties 파일을 생성하여 저장합니다. 앱 단위의 build.gradle 파일에 아래의 코드를 추가하여 key.properties 파일의 값들을 불러옵니다.

def keys = new Properties()
file("../key.properties").withInputStream {
    stream -> keys.load(stream)
}

defaultConfig {
        ...
        buildConfigField("String", "NAVER_CLIENT_ID", keys.NAVER_CLIENT_ID)
        buildConfigField("String", "NAVER_CLIENT_SECRET", keys.NAVER_CLIENT_SECRET)
    }

key.properties 파일을 gitignore 파일에 추가합니다.

환경 설정

앱 모듈의 build.gradle 에 dependency를 추가해 줍니다.

implementation 'com.naver.nid:naveridlogin-android-sdk:4.2.6'

버튼 추가

OAuthLoginButton 객체로 버튼을 추가합니다.

<com.nhn.android.naverlogin.ui.view.OAuthLoginButton
            android:id="@+id/main_login_naver"
            android:layout_width="250dp"
            android:layout_height="53dp"
            />

startOAuthLoginActivity() 메소드를 이용한 로그인

	// 네이버 아이디 로그인 인스턴스 초기화 
            mOAuthLoginInstance = OAuthLogin.getInstance()
            mOAuthLoginInstance.init(
                App.context,
                BuildConfig.NAVER_CLIENT_ID,
                BuildConfig.NAVER_CLIENT_SECRET,
                R.string.app_name.toString()
            )

	// OAuthLoginHandler 로 accessToken 가져오기
            mOAuthLoginInstance.startOauthLoginActivity(this, @SuppressLint("HandlerLeak")
            object : OAuthLoginHandler() {
                override fun run(success: Boolean) {
                    if (success) {
                        val accessToken: String = mOAuthLoginInstance.getAccessToken(baseContext)
                        Toast.makeText(baseContext, accessToken, Toast.LENGTH_SHORT).show()
                    } else {
                        val errorCode: String =
                            mOAuthLoginInstance.getLastErrorCode(App.context).code
                        val errorDesc = mOAuthLoginInstance.getLastErrorDesc(App.context)

                        Toast.makeText(
                            baseContext,
                            "errorCode: $errorCode, errorDesc: $errorDesc",
                            Toast.LENGTH_SHORT
                        ).show()
                    }
                }
            })

Reference

Naver Developers

profile
안드로이드, flutter 개발자

0개의 댓글