From 0c4aca02395861535cbcde14bf9386ee254a5d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Wed, 22 Nov 2023 17:59:38 +0900 Subject: [PATCH] =?UTF-8?q?=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80.=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EC=9E=91=EC=97=85=EC=A4=91.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/css/page.css | 3 +- .../src/pages/login/join/Join.jsx | 60 +++++---- kcsc-back-end/build.gradle | 1 + .../auth/EgovLoginApiController.java | 114 +++++------------- .../dbnt/kcscbackend/auth/entity/LoginVO.java | 34 ++++-- .../kcscbackend/auth/entity/UserInfo.java | 72 +++++++++++ .../auth/repository/UserInfoRepository.java | 12 ++ .../auth/service/EgovLoginService.java | 1 + .../service/impl/EgovLoginServiceImpl.java | 37 +++++- .../config/jwt/EgovJwtTokenUtil.java | 11 +- .../config/security/SecurityConfig.java | 26 +++- 11 files changed, 238 insertions(+), 133 deletions(-) create mode 100644 kcsc-back-end/src/main/java/com/dbnt/kcscbackend/auth/entity/UserInfo.java create mode 100644 kcsc-back-end/src/main/java/com/dbnt/kcscbackend/auth/repository/UserInfoRepository.java diff --git a/egovframe-template-simple-react-contribution/src/css/page.css b/egovframe-template-simple-react-contribution/src/css/page.css index b219bcd..82453e9 100644 --- a/egovframe-template-simple-react-contribution/src/css/page.css +++ b/egovframe-template-simple-react-contribution/src/css/page.css @@ -20,7 +20,7 @@ .Plogin .list li + li {margin-top: 5px;} .Pjoin h1 {color: #222; font-size: 48px; font-weight: 500; letter-spacing: -2px; line-height: 48px; text-align: center;} -.Pjoin .join_box {position: relative; width: 690px; margin: 54px auto 0; padding: 70px 95px 120px 95px ; border: 1px solid #dde2e5; border-radius: 25px; box-shadow: 3px 4px 5px #ccc;} +.Pjoin .join_box {position: relative; width: 690px; margin: 54px auto 0; padding: 70px 95px; border: 1px solid #dde2e5; border-radius: 25px; box-shadow: 3px 4px 5px #ccc;} .Pjoin .join_box input[type=text], .Pjoin .join_box input[type=password] {width: 100%; height: 46px; padding: 0 20px; border: 0; border-radius: 8px; color: #666; font-size: 16px; background: #f5f5f5;} .Pjoin .join_box .group input + input {margin-top: 18px;} @@ -29,6 +29,7 @@ .Pjoin .join_box .chk {margin-top: 20px;} .Pjoin .join_box .chk em {display: inline-block; height: 30px; margin-left: 40px; color: #666; font-size: 16px;} .Pjoin .join_box button {width: 500px;height: 50px;border-radius: 8px;color: #fff;font-size: 20px;font-weight: 500;text-align: center;line-height: 50px;background: #169bd5;} +.Pjoin .join_box button:disabled {background: rgba(22, 155, 213, 0.4); cursor: auto;} .Pjoin .join_box button span {display: block; position: relative; height: 100%;} .Pjoin .join_box .list li {position: relative; padding-left: 15px; color: #666; font-size: 16px; line-height: 26px;} .Pjoin .join_box .list li + li {margin-top: 5px;} diff --git a/egovframe-template-simple-react-contribution/src/pages/login/join/Join.jsx b/egovframe-template-simple-react-contribution/src/pages/login/join/Join.jsx index b3f9968..29b18db 100644 --- a/egovframe-template-simple-react-contribution/src/pages/login/join/Join.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/login/join/Join.jsx @@ -3,12 +3,11 @@ import {Link, useLocation, useNavigate} from 'react-router-dom'; import * as EgovNet from 'api/egovFetch'; import URL from 'constants/url'; -import CODE from 'constants/code'; +import CODE from "constants/code"; import Row from 'react-bootstrap/Row'; import Col from 'react-bootstrap/Col'; import { getLocalItem, setLocalItem, setSessionItem } from 'utils/storage'; -import EgovLoginContent from "../EgovLoginContent"; import InfoShareChk from "./InfoShareChk"; function Join(props) { @@ -20,31 +19,46 @@ function Join(props) { const location = useLocation(); console.log("JoinContent [location] : ", location); - const [userInfo, setUserInfo] = useState({ id: '', email: '', password: '' }); + const [userInfo, setUserInfo] = useState({ id: '', email: '', password: '', passwordChk: '' }); const [infoShareChk, setInfoShareChk] = useState(false); + const [submitFlag, setSubmitFlag] = useState(true); const submitFormHandler = (e) => { console.log("JoinContent submitFormHandler()"); - - const loginUrl = "/auth/join" - const requestOptions = { - method: "POST", - headers: { - 'Content-type': 'application/json' - }, - body: JSON.stringify(userInfo) + let valueChk = true; + for(let value in userInfo){ + if(!userInfo[value]){ + valueChk = false; + } } + if(valueChk){ + const loginUrl = "/auth/join" + const requestOptions = { + method: "POST", + headers: { + 'Content-type': 'application/json' + }, + body: JSON.stringify(userInfo) + } - EgovNet.requestFetch(loginUrl, - requestOptions, - (resp) => { - let resultVO = resp.resultVO; - let jToken = resp?.jToken || null; + EgovNet.requestFetch(loginUrl, + requestOptions, + (resp) => { + let resultVO = resp.resultVO; + let jToken = resp?.jToken || null; - setSessionItem('jToken', jToken); + setSessionItem('jToken', jToken); + if (Number(resp.resultCode) === Number(CODE.RCV_SUCCESS)) { + alert(resp.resultMessage); + navigate('/login'); + }else{ + alert(resp.resultMessage); + } - - }) + }) + }else{ + window.alert("입력되지 않은 값이 있습니다.") + } } console.log("------------------------------JoinContent [End]"); @@ -80,10 +94,10 @@ function Join(props) { onChange={e => setUserInfo({ ...userInfo, id: e.target.value })} /> setUserInfo({ ...userInfo, email: e.target.value })} /> - setUserInfo({ ...userInfo, password: e.target.value })} /> - setUserInfo({ ...userInfo, passwordConfirm: e.target.value })} /> + setUserInfo({ ...userInfo, password: e.target.value })}/> + setUserInfo({ ...userInfo, passwordChk: e.target.value })}/>