안드로이드

안드로이드 네이버 아이디 로그인 구현하기 android naver id login

알통몬_ 2017. 10. 17. 17:20
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


지난 포스팅에서는 안드로이드 페이스북 로그인 기능 구현하는 방법에 대해 알아봤는데요.

2017/10/17 - [안드로이드] - 안드로이드 페이스북 로그인 기능 구현하기 android app facebook login


이번 포스팅에서는 

안드로이드 네이버 아이디 로그인 기능을 구현하는 방법에 대해 알아보겠습니다.

저는 페이스북 로그인 기능을 구현한 프로젝트에 그대로 진행했습니다.


먼저 네이버 개발자센터에 들어가서 네이버 아이디 로그인 라이브러리를 다운받습니다.

https://developers.naver.com/docs/login/sdks/

저는 4.1.4 버전을 다운받았습니다.

그럼 프로젝트를 생성하시고, projectName/app/lib 밑에 다운 받은 .jar 파일을 넣어주시면 되는데요.

3rdparty_login_library_android_4.1.4.jar 파일을 넣어주시면 됩니다.

그리고 Build.gradle(Module:app) 의 dependencies {} 안에

compile files('libs/3rdparty_login_library_android_4.1.4.jar')

추가해 주시구요.

그리고 네이버 개발자센터에서 애플리케이션을 등록해줘야 하는데요.

네이버 개발자 센터 -> application -> 애플리케이션 등록 ->


저처럼 해주시면 되는데요. 다운로드 url이 따로 없을 때는 저처럼 http://. 으로 해주셔도 무방합니다.


여기까지 따라오셨다면 이제 안드로이드 스튜디오로 넘어갑니다.

manifest.xml 에 약간의 코드를 추가해 주어야합니다.

<!-- [naveroauthlogin][start] 네이버아이디로로그인을 사용하기 위해서 넣어줘야하는 부분 -->
<activity android:name="com.nhn.android.naverlogin.ui.OAuthLoginActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<activity android:name="com.nhn.android.naverlogin.ui.OAuthLoginInAppBrowserActivity"
android:label="OAuth2.0 In-app"/>

<application></...> 안에 넣어주시면 됩니다.


activity_main.xml 에는 버튼을 추가해주면 되겠죠.

네이버에서 제공하는 서드파티 버튼을 추가해주면 되는데요.

따로 이미지를 지정안해도 네이버에서 제공하는 이미지가 앱을 빌드하면 나옵니다.

<com.nhn.android.naverlogin.ui.view.OAuthLoginButton
android:layout_gravity="center"
android:id="@+id/buttonOAuthLoginImg"
android:scaleType="centerInside"
android:layout_width="200dp"
android:layout_height="50dp" />


그럼 이제 

MainActivity.java

필드


OAuthLogin mOAuthLoginModule;
OAuthLoginButton authLoginButton;
Context mContext;


핸들러

private OAuthLoginHandler mOAuthLoginHandler = new OAuthLoginHandler() {
@Override
public void run(boolean success) {
if (success) {
final String accessToken = mOAuthLoginModule.getAccessToken(mContext);

String refreshToken = mOAuthLoginModule.getRefreshToken(mContext);
long expiresAt = mOAuthLoginModule.getExpiresAt(mContext);
String tokenType = mOAuthLoginModule.getTokenType(mContext);
} else {
String errorCode = mOAuthLoginModule.getLastErrorCode(mContext).getCode();
String errorDesc = mOAuthLoginModule.getLastErrorDesc(mContext);
Toast.makeText(mContext, "errorCode:" + errorCode
+ ", errorDesc:" + errorDesc, Toast.LENGTH_SHORT).show();
}
}
};


onCreate() 저는 로그아웃을 테스트 해보려고 if 문 안에 호출 핸들러를 넣어봤습니다.

authLoginButton = (OAuthLoginButton) findViewById(R.id.buttonOAuthLoginImg);
mOAuthLoginModule = OAuthLogin.getInstance();
mOAuthLoginModule.init(
MainActivity.this
,"부여받은 Client Id"
,"부여받은 Client Secret"
,"Client Name"
//,OAUTH_CALLBACK_INTENT
// SDK 4.1.4 버전부터는 OAUTH_CALLBACK_INTENT변수를 사용하지 않습니다.

);
if (mOAuthLoginModule.getAccessToken(this) != null) {
startActivity(new Intent(this,AfterActivity.class));
} else {
authLoginButton.setOAuthLoginHandler(mOAuthLoginHandler);

//위 코드가 네이버 아이디 로그인을 요청하는 코드입니다.
}

이상입니다.

이제 카카오톡 로그인, 구글 로그인이 남았는데요.

공부해서 올려보겠습니다!

반응형