네이버 아이디로 로그인은 Javascript를 이용해 구현하였다. 네이버 아이디로 로그인을 시작하기 전에 먼저 네이버 개발자 사이트에 어플리케이션을 등록해주어야한다.
애플리케이션 등록을 한다.
네이버 개발자 사이트
Application > 애플리케이션 등록 (사용API - 네아로 선택)
네이버 아이디로 로그인 샘플코드를 적용한다.
(네이버 로그인 JavaScript 예제는 2개의 파일로 구성되어 있습니다.)
로그인버튼이 노출되는 로그인 페이지
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <script type="text/javascript" src="https://static.nid.naver.com/js/naveridlogin_js_sdk_2.0.2.js" charset="utf-8"></script>
<!-- 네이버아이디로로그인 버튼 노출 영역 --> <div id="naverIdLogin"></div>
<script type="text/javascript"> var naverLogin = new naver.LoginWithNaverId( { clientId: "${SYSTEM_NAVER_CLIENTID}", callbackUrl: "${SYSTEM_JSP_SITEURL}/login/snsNaverlogin", isPopup: false, loginButton: {color: "green", type: 1, height: 60} } ); naverLogin.init(); </script>
|
- 네이버 아이디 로그인 버튼 사용 가능한 Option
버튼 색상 : white, green
크기 : 1(버튼형), 2(작은 배너), 3(큰 배너)
배너 및 버튼 높이 : 사용자 지정값
로그인버튼 클릭 시 callback처리되는 페이지
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| <!DOCTYPE html> <html lang="kr">
<head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>NaverLoginSDK</title> </head>
<body> callback 처리중입니다. 이 페이지에서는 callback을 처리하고 바로 main으로 redirect하기때문에 이 메시지가 보이면 안됩니다. <!-- (1) LoginWithNaverId Javscript SDK --> <script type="text/javascript" src="https://static.nid.naver.com/js/naveridlogin_js_sdk_2.0.2.js" charset="utf-8"></script>
<!-- (2) LoginWithNaverId Javscript 설정 정보 및 초기화 --> <script> var naverLogin = new naver.LoginWithNaverId( { clientId: "${SYSTEM_NAVER_CLIENTID}", callbackUrl: "${SYSTEM_JSP_SITEURL}/login/snsNaverlogin", isPopup: false, callbackHandle: true } );
naverLogin.init();
window.addEventListener('load', function () { naverLogin.getLoginStatus(function (status) { if (status) { var phone = naverLogin.user.getMobile(); if( phone == undefined || phone == null) { alert("휴대폰번호는 필수정보입니다. 정보제공을 동의해주세요."); naverLogin.reprompt(); return; } window.location.replace("${SYSTEM_JSP_SITEURL}/login/snsLoginWithPhone?snsType=N&phone=" + phone); } else { console.log("callback 처리에 실패하였습니다."); } }); }); </script> </body>
</html>
|
결과화면