네이버 sns로그인 연동 (테스트)
This commit is contained in:
parent
a8670c088f
commit
257e73472e
@ -1,5 +1,6 @@
|
||||
package kcc.kccadr.certDoc.web;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -8,6 +9,7 @@ import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||
import kcc.com.cmm.EgovMessageSource;
|
||||
@ -83,6 +85,27 @@ public class CertDocController {
|
||||
@Resource(name="adjstConciliatorService")
|
||||
private AdjstConciliatorService adjstConciliatorService;
|
||||
|
||||
/**
|
||||
* 송달문서조회용 SNS 로그인 페이지
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/certDoc/snsLoginPage.do")
|
||||
public String snsLoginPage(@RequestParam HashMap<String, String> test) throws Exception {
|
||||
|
||||
return "/web/kccadr/login/SsoLoginUsrSns";
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 송달문서 목록
|
||||
*/
|
||||
@RequestMapping("/web/kccadr/certDoc/certDocList.do")
|
||||
public String certDocList(@ModelAttribute("cmmVO") PgrCmmVO cmmVO, ModelMap model) throws Exception {
|
||||
|
||||
return "/web/kccadr/certDoc/certDocList";
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 확정증명원 상세
|
||||
*/
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
|
||||
@ -12,8 +12,6 @@
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<script type="text/javaScript" language="javascript">
|
||||
</script>
|
||||
<script src="<c:url value='/js/kccadr/kakaojs/kakao.js' />"></script>
|
||||
<script src="<c:url value='/js/kccadr/naverjs/naveridlogin_js_sdk_2.0.2.js' />"></script>
|
||||
</head>
|
||||
<body>
|
||||
<form:form id="createForm" name="createForm" commandName="adjstChangeDateVO" onsubmit="return false;">
|
||||
@ -118,135 +116,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- TEST CODE -->
|
||||
<ul>
|
||||
<li onclick="kakaoLogin();">
|
||||
<a href="javascript:void(0)">
|
||||
<span>카카오 로그인</span>
|
||||
</a>
|
||||
</li>
|
||||
<li onclick="kakaoLogout();">
|
||||
<a href="javascript:void(0)">
|
||||
<span>카카오 로그아웃</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<br><br><br><br><br><br>
|
||||
|
||||
<div class="login-area">
|
||||
<div id="message">
|
||||
로그인 버튼을 눌러 로그인 해주세요.
|
||||
</div>
|
||||
<div id="button_area">
|
||||
<div id="naverIdLogin"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 카카오 스크립트 -->
|
||||
<script>
|
||||
Kakao.init('5a964d4a736ef47416f326a646bcfc5e'); //발급받은 키 중 javascript키를 사용해준다.
|
||||
console.log(Kakao.isInitialized()); // sdk초기화여부판단
|
||||
//카카오로그인
|
||||
function kakaoLogin() {
|
||||
Kakao.Auth.login({
|
||||
success: function (response) {
|
||||
Kakao.API.request({
|
||||
url: '/v2/user/me',
|
||||
success: function (response) {
|
||||
console.log(response)
|
||||
},
|
||||
fail: function (error) {
|
||||
console.log(error)
|
||||
},
|
||||
})
|
||||
},
|
||||
fail: function (error) {
|
||||
console.log(error)
|
||||
},
|
||||
})
|
||||
}
|
||||
//카카오로그아웃
|
||||
function kakaoLogout() {
|
||||
if (Kakao.Auth.getAccessToken()) {
|
||||
Kakao.API.request({
|
||||
url: '/v1/user/unlink',
|
||||
success: function (response) {
|
||||
console.log(response)
|
||||
},
|
||||
fail: function (error) {
|
||||
console.log(error)
|
||||
},
|
||||
})
|
||||
Kakao.Auth.setAccessToken(undefined)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const naverLogin = new naver.LoginWithNaverId(
|
||||
{
|
||||
clientId: "iMGwQvTUeD4tVwv41haJ",
|
||||
callbackUrl: "http://localhost:8089/web/kccadr/certDoc/cfrmDetail.do",
|
||||
loginButton: {color: "green", type: 2, height: 40}
|
||||
}
|
||||
);
|
||||
naverLogin.init(); // 로그인 설정
|
||||
|
||||
naverLogin.getLoginStatus(function (status) {
|
||||
alert(status);
|
||||
if (status) {
|
||||
const email=naverLogin.user.getEmail();
|
||||
const name=naverLogin.user.getName();
|
||||
const mobile=naverLogin.user.getMobile();
|
||||
|
||||
//필수사항을 선택하지 않으면 선택창으로 돌아갑니다.
|
||||
if(email===null||email===undefined ){
|
||||
alert("이메일이 필요합니다. 정보제공을 동의해주세요.");
|
||||
naverLogin.reprompt();
|
||||
return ;
|
||||
} else if(name===null||name===undefined ){
|
||||
alert("이름이 필요합니다. 정보제공을 동의해주세요.");
|
||||
naverLogin.reprompt();
|
||||
return ;
|
||||
} else if(mobile===null||mobile===undefined ){
|
||||
alert("휴대폰번호가 필요합니다. 정보제공을 동의해주세요.");
|
||||
naverLogin.reprompt();
|
||||
return ;
|
||||
} else{
|
||||
setLoginStatus(); //모든 필수 정보 제공 동의하면 실행하는 함수
|
||||
}
|
||||
}
|
||||
|
||||
const message_area=document.getElementById('message');
|
||||
message_area.innerHTML=`
|
||||
<h3> Login 성공 </h3>
|
||||
<div>user email : ${naverLogin.user.email}</div>
|
||||
<div>user name : ${naverLogin.user.name}</div>
|
||||
<div>user mobile : ${naverLogin.user.mobile}</div>
|
||||
`;
|
||||
});
|
||||
|
||||
console.log(naverLogin);
|
||||
|
||||
function setLoginStatus(){
|
||||
const button_area=document.getElementById('button_area');
|
||||
button_area.innerHTML="<button id='btn_logout'>로그아웃</button>";
|
||||
|
||||
const logout=document.getElementById('btn_logout');
|
||||
|
||||
logout.addEventListener('click',(e)=>{
|
||||
naverLogin.logout();
|
||||
location.reload(true);
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<!-- //cont -->
|
||||
</form:form>
|
||||
</body>
|
||||
|
||||
@ -4,11 +4,13 @@
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
</script>
|
||||
<form name="snsLoginForm" id="snsLoginForm">
|
||||
<input type="hidden" name="email" value="" />
|
||||
<input type="hidden" name="phone" value="" />
|
||||
</form>
|
||||
|
||||
<form:form id="loginForm" name="loginForm" method="post" action="/web/user/login/actionSecurityLogin.do">
|
||||
<input type="hidden" name="beforeUrl" value='<c:out value="${beforeUrl}"></c:out>' />
|
||||
<input type="hidden" name="userSe" value="GNR" />
|
||||
<input type="hidden" id="id" name="id">
|
||||
<input type="hidden" id="password" name="password">
|
||||
@ -26,8 +28,8 @@
|
||||
<p class="login_tit"><span>로그인</span>해주세요</p>
|
||||
<div class="login_form">
|
||||
<div class="btn_wrap">
|
||||
<button type="button" onclick="javascript:actionLogin();" title="새창열림" class="btn_kakao">카카오로 로그인</button>
|
||||
<button type="button" onclick="window.open('<c:out value='${joinUrl}'/>')" title="새창열림" class="btn_naver">네이버로 로그인</button>
|
||||
<button type="button" onclick="javascript:kakaoLogin();" class="btn_kakao">카카오로 로그인</button>
|
||||
<div id="naverIdLogin"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -38,7 +40,75 @@
|
||||
<!-- //cont -->
|
||||
</form:form>
|
||||
|
||||
<%-- <form id="usrForm" name="usrForm" method="post" action="">
|
||||
<input type="hidden" id="returnSiteCode" name="returnSiteCode" value="" />
|
||||
<input type="hidden" id="returnSiteUrl" name="returnSiteUrl" value="" />
|
||||
</form> --%>
|
||||
|
||||
<script src="<c:url value='/js/kccadr/kakaojs/kakao.js' />"></script>
|
||||
<script src="<c:url value='/js/kccadr/naverjs/naveridlogin_js_sdk_2.0.2.js' />" charset="utf-8"></script>
|
||||
<script type="text/javascript">
|
||||
//카카오로그인
|
||||
Kakao.init('5a964d4a736ef47416f326a646bcfc5e'); //발급받은 키 중 javascript키를 사용해준다.
|
||||
//console.log(Kakao.isInitialized()); // sdk초기화여부판단
|
||||
function kakaoLogin() {
|
||||
Kakao.Auth.login({
|
||||
success: function (response) {
|
||||
Kakao.API.request({
|
||||
url: '/v2/user/me',
|
||||
success: function (response) {
|
||||
console.log(response);
|
||||
|
||||
var snsLoginForm = document.snsLoginForm;
|
||||
snsLoginForm.email.value = response.kakao_account.email;
|
||||
|
||||
snsLoginForm.action = "<c:url value='/web/kccadr/certDoc/certDocList.do'/>";
|
||||
snsLoginForm.submit();
|
||||
},
|
||||
fail: function (error) {
|
||||
console.log(error)
|
||||
},
|
||||
})
|
||||
},
|
||||
fail: function (error) {
|
||||
console.log(error)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
//네이버로그인
|
||||
var naverLogin = new naver.LoginWithNaverId(
|
||||
{
|
||||
clientId: "iMGwQvTUeD4tVwv41haJ",
|
||||
callbackUrl: "http://127.0.0.1:8089/web/kccadr/certDoc/snsLoginPage.do",
|
||||
loginButton: {color: "green", type: 2, height: 40},
|
||||
isPopup: false /* 팝업을 통한 연동처리 여부 */
|
||||
}
|
||||
);
|
||||
|
||||
/* 설정정보를 초기화하고 연동을 준비 */
|
||||
naverLogin.init();
|
||||
|
||||
naverLogin.getLoginStatus(function (status) {
|
||||
console.log(status);
|
||||
if (status) {
|
||||
/* 필수적으로 받아야하는 프로필 정보가 있다면 callback처리 시점에 체크 */
|
||||
var email = naverLogin.user.getEmail();
|
||||
console.log(email); // 사용자 이메일 정보를 받을수 있습니다.
|
||||
if( email == undefined || email == null) {
|
||||
alert("이메일은 필수정보입니다. 정보제공을 동의해주세요.");
|
||||
/* 사용자 정보 재동의를 위하여 다시 네아로 동의페이지로 이동함 */
|
||||
naverLogin.reprompt();
|
||||
return;
|
||||
} else {
|
||||
var snsLoginForm = document.snsLoginForm;
|
||||
snsLoginForm.email.value = email;
|
||||
|
||||
// snsLoginForm.action = "<c:url value='/web/kccadr/certDoc/certDocList.do'/>";
|
||||
// snsLoginForm.submit();
|
||||
}
|
||||
|
||||
} else {
|
||||
console.log("callback 처리에 실패하였습니다.");
|
||||
}
|
||||
});
|
||||
console.log(naverLogin);
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user