728x90
네이버 개발자 센터 ( https://developers.naver.com/main/ )
개발 가이드 ( https://developers.naver.com/docs/login/api/ )
login.jsp
<div id="naver_id_login"></div>
naver.js
※ naverSNSLogin,jsp 에서 정보 가져와서 addUser 함수에서 회원가입(opener사용)
var naver_id_login = new naver_id_login("Client ID넣기", "http://www.co.kr/naverSNSLogin");
var state = naver_id_login.getUniqState();
naver_id_login.setDomain("http://www.co.kr");
naver_id_login.setState(state);
naver_id_login.setPopup();
naver_id_login.init_naver_id_login();
function addUser(snsId, snsEmail, snsName, snsCd){
$.ajax({
type: "POST",
url : "/user/addUser",
async: false,
data: '{"snsID" : "'+ snsId +'", "snsEmail" : "'+ snsEmail +'", "snsNickName" : "'+ snsName +'", "snsSignType" : "'+ snsCd +'"}',
contentType: "application/json; charset=utf-8",
success : function(result){
if(result.msg == "SUCCESS") {
swal2CustomAlert('success','회원가입에 성공했습니다.');
$('.signUpModal').magnificPopup('close');
dim.hide();
} else if (result.msg == "ISDUPLICATE") {
swal2CustomAlert('error','이미 존재하는 아이디입니다.');
} else {
swal2CustomAlert('error','ERROR');
}
console.log(result);
}
});
}
naverSNSLogin.jsp
※ opener 사용해서 상위페이지에서 처리
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!-- naver sns login -->
<script type="text/javascript" src="https://static.nid.naver.com/js/naverLogin_implicit-1.0.3.js" charset="utf-8"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<!-- naver sns login -->
<script type="text/javaScript">
var naver_id_login = new naver_id_login("Client ID넣기", "http://xxx.co.kr/naverSNSLogin");
naver_id_login.get_naver_userprofile("naverLoginCallback()");
function naverLoginCallback() {
if(naver_id_login.getProfileData('id')){
var snsId = naver_id_login.getProfileData('id');
var snsEmail = naver_id_login.getProfileData('email');
var snsName = snsEmail.substring(0, snsEmail.indexOf("@"));
var snsCd = "N";
console.log(snsId);
console.log(snsEmail);
console.log(snsName);
//상위 페이지에서 처리
opener.addUser(snsId, snsEmail, snsName, snsCd);
window.close();
}else{
alert("ERROR");
window.close();
}
}
</script>
Controller.java
@RequestMapping("/naverSNSLogin")
public String naverSNSLogin(HttpServletRequest req,HttpServletResponse res, @CookieValue(value = "lang", defaultValue = "") String lang) {
lang = getLanguage(req, lang);
req.setAttribute("lang", lang);
return "user/naverSNSLogin";
}
728x90
반응형
'개발' 카테고리의 다른 글
[SNS 로그인] 카카오 회원가입/로그인 API (0) | 2020.07.17 |
---|---|
[SNS 로그인] 구글 회원가입, 로그인 API / 자동 로그인 문제 (0) | 2020.07.17 |
FREENOM 무료 도메인 만들기, IP 셋팅 방법 (0) | 2020.07.01 |
localhost를 도메인 주소로 변경하는 방법 (hosts 파일 변경) (2) | 2020.06.30 |
[리눅스] 디스크 용량 확인 명령어 (df/du) (0) | 2020.06.15 |