카카오 소셜로그인 최종 수정

dev_bert
snut97 3 years ago
parent cc934775f5
commit 2ea12600fa

@ -9,11 +9,12 @@
<option name="autoReloadType" value="SELECTIVE" /> <option name="autoReloadType" value="SELECTIVE" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="4099ff18-820b-4e43-a4c5-6159d58dccc4" name="변경" comment="앱 네이버소셜로그인 수정"> <list default="true" id="4099ff18-820b-4e43-a4c5-6159d58dccc4" name="변경" comment="카카오 소셜로그인 수정-">
<change afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/social_login_common.ftl" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/backoffice/m/login/M_LoginController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/backoffice/m/login/M_LoginController.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/webapp/META-INF/context.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/META-INF/context.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/backoffice/m/util/M_Util.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/backoffice/m/util/M_Util.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/kakaoLogin_callback.ftl" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/kakaoLogin_callback.ftl" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/kakaoLogin_callback.ftl" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/kakaoLogin_callback.ftl" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/nhnLogin_callback.ftl" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/nhnLogin_callback.ftl" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/view_login.ftl" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/view_login.ftl" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/view_login.ftl" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login/view_login.ftl" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
@ -60,7 +61,7 @@
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" /> <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" /> <property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/include" /> <property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/webapp/WEB-INF/views/ftl/m/login" />
<property name="project.structure.last.edited" value="프로젝트" /> <property name="project.structure.last.edited" value="프로젝트" />
<property name="project.structure.proportion" value="0.0" /> <property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.0" /> <property name="project.structure.side.proportion" value="0.0" />
@ -69,11 +70,11 @@
</component> </component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS"> <key name="CopyFile.RECENT_KEYS">
<recent name="C:\project\bf\src\main\webapp\WEB-INF\views\ftl\m\login" />
<recent name="C:\project\bf\src\main\webapp\WEB-INF\views\ftl\m\include" /> <recent name="C:\project\bf\src\main\webapp\WEB-INF\views\ftl\m\include" />
<recent name="C:\project\bf\src\main\webapp\WEB-INF\views\ftl\m\index" /> <recent name="C:\project\bf\src\main\webapp\WEB-INF\views\ftl\m\index" />
<recent name="C:\project\bf\src\main\java\com\backoffice\m\tutorial" /> <recent name="C:\project\bf\src\main\java\com\backoffice\m\tutorial" />
<recent name="C:\project\bf\src\main\java\com\backoffice\m" /> <recent name="C:\project\bf\src\main\java\com\backoffice\m" />
<recent name="C:\project\bf\src\main\resources\sqlmap\m" />
</key> </key>
<key name="CopyClassDialog.RECENTS_KEY"> <key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.backoffice.m.tutorial" /> <recent name="com.backoffice.m.tutorial" />
@ -250,14 +251,8 @@
<workItem from="1651457534351" duration="24275000" /> <workItem from="1651457534351" duration="24275000" />
<workItem from="1651552871470" duration="866000" /> <workItem from="1651552871470" duration="866000" />
<workItem from="1651626281483" duration="151000" /> <workItem from="1651626281483" duration="151000" />
<workItem from="1651631474537" duration="8287000" /> <workItem from="1651631474537" duration="12924000" />
</task> <workItem from="1651659992753" duration="18000" />
<task id="LOCAL-00009" summary="추천홈메이드이유식 &gt; 팝업 &gt; 연관식품 삭제">
<created>1648455408468</created>
<option name="number" value="00009" />
<option name="presentableId" value="LOCAL-00009" />
<option name="project" value="LOCAL" />
<updated>1648455408468</updated>
</task> </task>
<task id="LOCAL-00010" summary="예방접종 표시 오류 수정"> <task id="LOCAL-00010" summary="예방접종 표시 오류 수정">
<created>1648559536812</created> <created>1648559536812</created>
@ -595,7 +590,14 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1651549880517</updated> <updated>1651549880517</updated>
</task> </task>
<option name="localTasksCounter" value="58" /> <task id="LOCAL-00058" summary="카카오 소셜로그인 수정">
<created>1651642988293</created>
<option name="number" value="00058" />
<option name="presentableId" value="LOCAL-00058" />
<option name="project" value="LOCAL" />
<updated>1651642988293</updated>
</task>
<option name="localTasksCounter" value="59" />
<servers /> <servers />
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
@ -615,7 +617,6 @@
<component name="VcsManagerConfiguration"> <component name="VcsManagerConfiguration">
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" /> <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_NEW_TODO" value="false" /> <option name="CHECK_NEW_TODO" value="false" />
<MESSAGE value="아기정보입력 생년월일 형식 수정&#10;추천이유식 &gt; 카트팝업 검색 기능 및 조회 적용" />
<MESSAGE value="메모리 공유기능 적용 - 카카오, URL복사" /> <MESSAGE value="메모리 공유기능 적용 - 카카오, URL복사" />
<MESSAGE value="회원가입 밸리데이션 및 유효성체크 보완" /> <MESSAGE value="회원가입 밸리데이션 및 유효성체크 보완" />
<MESSAGE value="회원가입 밸리데이션 및 유효성체크 보완 - 2" /> <MESSAGE value="회원가입 밸리데이션 및 유효성체크 보완 - 2" />
@ -640,6 +641,7 @@
<MESSAGE value="메모리 &gt; 주간 오류 수정" /> <MESSAGE value="메모리 &gt; 주간 오류 수정" />
<MESSAGE value="- 아이3명 보기오류 수정&#10;- 아기정보 변경시 생년월이 형식 체크 추가&#10;- 앱 네이버로그인시 코드 수정" /> <MESSAGE value="- 아이3명 보기오류 수정&#10;- 아기정보 변경시 생년월이 형식 체크 추가&#10;- 앱 네이버로그인시 코드 수정" />
<MESSAGE value="앱 네이버소셜로그인 수정" /> <MESSAGE value="앱 네이버소셜로그인 수정" />
<option name="LAST_COMMIT_MESSAGE" value="앱 네이버소셜로그인 수정" /> <MESSAGE value="카카오 소셜로그인 수정" />
<option name="LAST_COMMIT_MESSAGE" value="카카오 소셜로그인 수정" />
</component> </component>
</project> </project>

@ -12,13 +12,13 @@
<input type="hidden" name="token" value="" /> <input type="hidden" name="token" value="" />
</form> </form>
<#include "/m/login/social_login_common.ftl">
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){
// const code = getCookie('authorize-access-token')
$.ajax({ $.ajax({
url:'https://kauth.kakao.com/oauth/token', url:'https://kauth.kakao.com/oauth/token',
type:'get', type:'post',
data:{ data:{
"grant_type" : "authorization_code", "grant_type" : "authorization_code",
"client_id" : "${KAKAO_APP_KEY}", "client_id" : "${KAKAO_APP_KEY}",
@ -33,48 +33,11 @@
fn_L_loginCallback("KAKAO", result.access_token); fn_L_loginCallback("KAKAO", result.access_token);
} }
}); });
// fn_L_loginCallback('KAKAO', "wh49vjdyPpLBQ5srJWJBNbZ2a-ZZUzq9Ot44PZaf0FdWirJPU3ImZNCefVbv6p40hHKo8QopcBQAAAGAjRkjAw", '', ''); // fn_L_loginCallback('KAKAO', "wh49vjdyPpLBQ5srJWJBNbZ2a-ZZUzq9Ot44PZaf0FdWirJPU3ImZNCefVbv6p40hHKo8QopcBQAAAGAjRkjAw", '', '');
// window.close();
}); });
</script>
// 소셜 로그인 callback 정보 받기
function fn_L_loginCallback(socialType, key){
//소셜로그인 체크여부 확인
$.ajax({
url:'${URL_ROOT}/m/login/socialJoinCheck.do',
type:'get',
data: {
"socialType": socialType,
"token" : key
},
dataType:'json',
}).done(function(result) {
if(result.socialJoin == "X") {
Swal.fire({text:"해당계정은 탈퇴 처리 되었습니다. 30일 이후에 재가입 하실수 있습니다."})
return;
}
//소셜연동정보가 있다면 소셜연동으로 회원가입 사용자에게 확인
if(result.socialJoin == "N") {
if(!confirm( "[" + socialType + "] 연동 회원가입정보가 없습니다. [" + socialType + "] 정보로 회원가입 하시겠습니까?")) {
return;
}
}
var form = document.frmJoin;
form.socialType.value = socialType;
form.token.value = key;
form.action = "${URL_ROOT}/m/login/socialLogin.do";
form.submit();
}.bind(this));
}
function getCookie(name) {
const value = "; " + document.cookie;
console.log(value);
const parts = value.split("; " + name + "=");
if (parts.length === 2) return parts.pop().split(";").shift();
}
</script>
</html> </html>

@ -1,6 +1,6 @@
<html lang="ko">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script> <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<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="https://static.nid.naver.com/js/naverLogin_implicit-1.0.3.js" charset="utf-8"></script>
<body>
<form id="frmJoin" name="frmJoin" method="post" action="loginByMemberId.do" enctype="multipart/form-data"> <form id="frmJoin" name="frmJoin" method="post" action="loginByMemberId.do" enctype="multipart/form-data">
<input type="hidden" name="OS" value="${model['OS']!}" /> <input type="hidden" name="OS" value="${model['OS']!}" />
@ -10,60 +10,12 @@
<input type="hidden" name="token" value="" /> <input type="hidden" name="token" value="" />
</form> </form>
<#include "/m/login/social_login_common.ftl">
<script type="text/javascript"> <script type="text/javascript">
var a = location.href; var a = location.href;
var b = a.split("access_token=")[1]; var b = a.split("access_token=")[1];
var key = b.split("&")[0]; var key = b.split("&")[0];
fn_L_loginCallback('NAVER', key); fn_L_loginCallback('NAVER', key);
// opener.parent.fn_L_loginCallback('NAVER', key);
// window.close();
// var naver_id_login = new naver_id_login("YOUR_CLIENT_ID", "YOUR_CALLBACK_URL");
// var naver_id_login = new naver_id_login("SGrtulQWT7DeFmD3XDNN", "http://dev.bf.co.kr:8080/bf/m/login/nhnLogin_callback");
// 네이버 사용자 프로필 조회
// naver_id_login.get_naver_userprofile("naverSignInCallback()");
// 네이버 사용자 프로필 조회 이후 프로필 정보를 처리할 callback function
/*
function naverSignInCallback() {
var a = location.href;
var b = a.split("access_token=")[1];
var key = b.split("&")[0];
console.log("---네이버----");
console.log(key);
}
*/
// 소셜 로그인 callback 정보 받기
function fn_L_loginCallback(socialType, key){
//소셜로그인 체크여부 확인
$.ajax({
url:'${URL_ROOT}/m/login/socialJoinCheck.do',
type:'get',
data: {
"socialType": socialType,
"token" : key
},
dataType:'json',
}).done(function(result) {
if(result.socialJoin == "X") {
Swal.fire({text:"해당계정은 탈퇴 처리 되었습니다. 30일 이후에 재가입 하실수 있습니다."})
return;
}
//소셜연동정보가 있다면 소셜연동으로 회원가입 사용자에게 확인
if(result.socialJoin == "N") {
if(!confirm( "[" + socialType + "] 연동 회원가입정보가 없습니다. [" + socialType + "] 정보로 회원가입 하시겠습니까?")) {
return;
}
}
var form = document.frmJoin;
form.socialType.value = socialType;
form.token.value = key;
form.action = "${URL_ROOT}/m/login/socialLogin.do";
form.submit();
}.bind(this));
}
</script> </script>
</body>
</html> </html>

@ -0,0 +1,35 @@
<html lang="ko">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript">
// 소셜 로그인 callback 정보 받기
function fn_L_loginCallback(socialType, key){
//소셜로그인 체크여부 확인
$.ajax({
url:'${URL_ROOT}/m/login/socialJoinCheck.do',
type:'get',
data: {
"socialType": socialType,
"token" : key
},
dataType:'json',
}).done(function(result) {
if(result.socialJoin == "X") {
Swal.fire({text:"해당계정은 탈퇴 처리 되었습니다. 30일 이후에 재가입 하실수 있습니다."})
return;
}
//소셜연동정보가 있다면 소셜연동으로 회원가입 사용자에게 확인
if(result.socialJoin == "N") {
if(!confirm( "[" + socialType + "] 연동 회원가입정보가 없습니다. [" + socialType + "] 정보로 회원가입 하시겠습니까?")) {
return;
}
}
var form = document.frmJoin;
form.socialType.value = socialType;
form.token.value = key;
form.action = "${URL_ROOT}/m/login/socialLogin.do";
form.submit();
}.bind(this));
}
</script>

@ -130,34 +130,35 @@
} }
// 소셜 로그인 callback 정보 받기 // 소셜 로그인 callback 정보 받기
function fn_L_loginCallback(socialType, key){ <#--function fn_L_loginCallback(socialType, key){-->
//소셜로그인 체크여부 확인 <#-- //소셜로그인 체크여부 확인-->
$.ajax({ <#-- $.ajax({-->
url:'${URL_ROOT}/m/login/socialJoinCheck.do', <#-- url:'${URL_ROOT}/m/login/socialJoinCheck.do',-->
type:'get', <#-- type:'get',-->
data: { <#-- data: {-->
"socialType": socialType, <#-- "socialType": socialType,-->
"token" : key <#-- "token" : key-->
}, <#-- },-->
dataType:'json', <#-- dataType:'json',-->
}).done(function(result) { <#-- }).done(function(result) {-->
if(result.socialJoin == "X") { <#-- if(result.socialJoin == "X") {-->
Swal.fire({text:"해당계정은 탈퇴 처리 되었습니다. 30일 이후에 재가입 하실수 있습니다."}) <#-- Swal.fire({text:"해당계정은 탈퇴 처리 되었습니다. 30일 이후에 재가입 하실수 있습니다."})-->
return; <#-- return;-->
} <#-- }-->
//소셜연동정보가 있다면 소셜연동으로 회원가입 사용자에게 확인 <#-- //소셜연동정보가 있다면 소셜연동으로 회원가입 사용자에게 확인-->
if(result.socialJoin == "N") { <#-- if(result.socialJoin == "N") {-->
if(!confirm( "[" + socialType + "] 연동 회원가입정보가 없습니다. [" + socialType + "] 정보로 회원가입 하시겠습니까?")) { <#-- if(!confirm( "[" + socialType + "] 연동 회원가입정보가 없습니다. [" + socialType + "] 정보로 회원가입 하시겠습니까?")) {-->
return; <#-- return;-->
} <#-- }-->
} <#-- }-->
var form = document.frmJoin; <#-- var form = document.frmJoin;-->
form.socialType.value = socialType; <#-- form.socialType.value = socialType;-->
form.token.value = key; <#-- form.token.value = key;-->
form.action = "${URL_ROOT}/m/login/socialLogin.do"; <#-- form.action = "${URL_ROOT}/m/login/socialLogin.do";-->
form.submit(); <#-- form.submit();-->
}.bind(this)); <#-- }.bind(this));-->
} <#--}-->
//reset_btn클릭시 input 값 없애기 //reset_btn클릭시 input 값 없애기
function reset_onclick(inputID){ function reset_onclick(inputID){
var resetinput = document.getElementById(inputID); var resetinput = document.getElementById(inputID);

Loading…
Cancel
Save