diff --git a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java index 2fa0f583..6277da30 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java @@ -2942,6 +2942,23 @@ public class EgovMypageController { return "web/user/mberSecession"; } + /** + * 회원탈퇴 본인인증 화면 + */ + @RequestMapping(value="/web/user/mberSecureLogin.do") + public String secureLogin(@ModelAttribute MberManageVO mberManageVO + , ModelMap model, HttpServletRequest request, RedirectAttributes redirectAttributes) throws Exception { + + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + if(loginVO == null) { + //redirectAttributes.addFlashAttribute("message", "문자온 서비스는 로그인 후 이용 가능합니다."); + return "redirect:/web/user/login/login.do"; + } + + model.addAttribute("pageTab", "mberSecureLogin"); + return "web/user/mberSecureLogin"; + } + /** * 회원탈퇴 상세정보 화면 */ diff --git a/src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp b/src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp index 11a59870..78b4db94 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp @@ -56,323 +56,6 @@ $(document).ready(function(){ }); -// 보안 로그인 -$(document).ready(function(){ - - // 인증번호 발송 버튼 - $('#certReqBtn').on('click', function(){ - var certReqPhone = $('#certReqPhone').val(); - - if (certReqPhone==''){ - alert("핸드폰번호를 입력해주세요."); - return; - } - var params = {"mbtlnum" : certReqPhone } - $.ajax({ - type: "POST", - url : "", - data: params, - dataType:'json', - async: false, - success: function (returnData) { - console.log('returnData : ', returnData); - if(returnData.status == 'OK'){ - alert(returnData.object.msg); - $("#certReqPhone").prop("disabled", true); - } - else - { - alert("오류가 발생하였습니다."); - } - }, - error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); } - }); - }); - - // 인증 버튼 - $('#certConfirmBtn').on('click', function(){ - var certReqPhone = $('#certReqPhone').val(); - var certNumber = $('#certNumber').val(); - - if (certNumber==''){ - alert("인증번호를 입력해주세요."); - return; - } - var params = {"mbtlnum" : certReqPhone, "checkNo" : certNumber } - $.ajax({ - type: "POST", - url : "", - data: params, - dataType:'json', - async: false, - success: function (returnData) { - console.log('returnData : ', returnData); - if(returnData.status == 'OK'){ -// alert(returnData.object.msg); - regCertPhone(params); - } - else if(returnData.status == 'BAD_REQUEST'){ - alert(returnData.message); - } - else - { - alert("오류가 발생하였습니다."); - } - }, - error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); } - }); - }); - - - - $('#showLoginBtn').on('click', function() { - if ($('#securityLogin').is(':visible')) { - $('#securityLogin').hide(); - } else { - $('#securityLogin').show(); - } - }); - - - - // IP 추가 버튼 클릭 시 tr 추가 - $(".btn_ip_plus").click(function () { - // 추가할 HTML 구조 - const ipTr = ` - - - - - - - - - - `; - - // 이미 추가된 `.ip-row`가 있는지 확인 - if ($(".ip_table tbody .ip-new").length === 0) { - $(".ip_table tbody").prepend(ipTr); // 중복되지 않으면 추가 - } else { - alert("이미 추가된 항목이 있습니다."); - } - }); - - - // IP 등록버튼 - $(document).on('click', '#ipRegBtn', function () { - // 현재 클릭된 버튼의 부모 tr 요소 - const $currentRow = $(this).closest('tr'); - - // 입력값 가져오기 - const ipValue = $currentRow.find('td:eq(0) input').val(); // 첫 번째 열 (IP) - const memoValue = $currentRow.find('td:eq(1) input').val(); // 두 번째 열 (메모) - - // 예외 처리 - if (!ipValue) { - alert("등록할 IP를 입력해주세요."); - $currentRow.find('td:eq(0) input').focus(); - return; - } - - - const ipRegex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; - - if (!ipRegex.test(ipValue)) { - alert("유효하지 않은 IP 주소입니다."); - return false; - } - - var params = { - "certIp" : ipValue - , "certMemo" : memoValue - } - - if(!confirm("IP를 등록 하시겠습니까?")){ - return false; - } - $.ajax({ - type: "POST", - url: "/cert/ip/insertCertIp.do", - data: params, - dataType:'json', - async: false, - success: function (returnData) { - if(returnData.status == 'OK'){ - findAllCertIp(); - }else if(returnData.status == 'CONFLICT'){ - alert(returnData.message); - return false; - } - else - { - alert("오류가 발생하였습니다."); - } - }, - error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); } - }); - }); - - - findAllCertIp(); -}); - - -function regCertPhone(params){ - - $.ajax({ - type: "POST", - url: "/cert/phone/insertCertPhone.do", - data: params, - dataType:'json', - async: false, - success: function (returnData) { - if(returnData.status == 'OK'){ - findAllCertIp(); - }else if(returnData.status == 'CONFLICT'){ - alert(returnData.message); - return false; - } - else - { - alert("오류가 발생하였습니다."); - } - }, - error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); } - }); - - -} - -function findAllCertIp(){ - - $.ajax({ - type: "POST", - url: "/cert/ip/selectMberCertIpList.do", - data: null, - dataType:'json', - async: false, - success: function (returnData) { - if (returnData.status === "OK") { - const objects = returnData.object; // 배열 데이터 - - // tbody의 기존 내용 삭제 - const $tbody = $(".ip_table tbody"); - $tbody.empty(); - - // 배열 데이터를 기반으로 tr 생성 후 tbody에 추가 - $.each(objects, function(index, obj) { - const $tr = $(""); // tr 요소 생성 - - // 각 td 요소 생성 - const $certIp = $("").text(obj.certIp || ""); - const $certMemo = $("").text(obj.certMemo || ""); - const $frstRegistPnttm = $("").text(obj.frstRegistPnttm || "등록되지 않음"); - const $deleteBtn = $("") - .addClass("btnType btn_text btn_lightgray fill btn_28") - .text("삭제") - .attr("type", "button") - .attr("id", "ipDelBtn") - .on("click", function() { - deleteRow(obj.certIp); // 삭제 버튼 클릭 시 실행 - }); - - // 관리 버튼을 감쌀 td 생성 - const $deleteTd = $("").append($deleteBtn); - - // tr에 td 추가 - $tr.append($certIp, $certMemo, $frstRegistPnttm, $deleteTd); - - // tbody에 tr 추가 - $tbody.append($tr); - }); - } else { - alert("데이터를 불러오는 데 실패했습니다."); - } - }, - error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); } - }); -} - -function findAllCertPhone(){ - - $.ajax({ - type: "POST", - url: "/cert/ip/selectMberCertIpList.do", - data: null, - dataType:'json', - async: false, - success: function (returnData) { - if (returnData.status === "OK") { - const objects = returnData.object; // 배열 데이터 - - // tbody의 기존 내용 삭제 - const $tbody = $(".ip_table tbody"); - $tbody.empty(); - - // 배열 데이터를 기반으로 tr 생성 후 tbody에 추가 - $.each(objects, function(index, obj) { - const $tr = $(""); // tr 요소 생성 - - // 각 td 요소 생성 - const $certIp = $("").text(obj.certIp || ""); - const $certMemo = $("").text(obj.certMemo || ""); - const $frstRegistPnttm = $("").text(obj.frstRegistPnttm || "등록되지 않음"); - const $deleteBtn = $("") - .addClass("btnType btn_text btn_lightgray fill btn_28") - .text("삭제") - .attr("type", "button") - .attr("id", "ipDelBtn") - .on("click", function() { - deleteRow(obj.certIp); // 삭제 버튼 클릭 시 실행 - }); - - // 관리 버튼을 감쌀 td 생성 - const $deleteTd = $("").append($deleteBtn); - - // tr에 td 추가 - $tr.append($certIp, $certMemo, $frstRegistPnttm, $deleteTd); - - // tbody에 tr 추가 - $tbody.append($tr); - }); - } else { - alert("데이터를 불러오는 데 실패했습니다."); - } - }, - error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); } - }); -} - -// IP 삭제 -function deleteRow(p_ip){ - - var params = { - "certIp" : p_ip - } - if(!confirm("IP를 삭제 하시겠습니까?")){ - return false; - } - $.ajax({ - type: "POST", - url: "/cert/ip/deleteCertIp.do", - data: params, - dataType:'json', - async: false, - success: function (returnData) { - if(returnData.status == 'OK'){ - findAllCertIp(); - } - else - { - alert("오류가 발생하였습니다."); - } - }, - error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); } - }); -} - - //기간 요일 지정 function setCalVal(val,targetObj){ $('input[name='+targetObj+']').val(val) ; diff --git a/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp b/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp new file mode 100644 index 00000000..5ad88a44 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp @@ -0,0 +1,645 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + + +
+ + +
+ +
+ + +
+ +
+ + <%@include file="/WEB-INF/jsp/web/user/mypageHeader.jsp"%> + + +
+
+

보안로그인

+
+
+ + + + +
+
+ +
+ +
+ diff --git a/src/main/webapp/WEB-INF/jsp/web/user/mypageHeader.jsp b/src/main/webapp/WEB-INF/jsp/web/user/mypageHeader.jsp index 9bd85797..fa8237bf 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/mypageHeader.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/mypageHeader.jsp @@ -36,8 +36,9 @@ $(document).ready(function(){
  • -
  • - +
  • + +
  • \ No newline at end of file