https://goodwoong.tistory.com/125
참고 자료
집에 있다가 프로젝트를 좀 더 만들고 싶어서 STS를 켰다.
정확하게는 조정하는 것이다.
이전 쿠키는 jsp 안에서 쿠키를 저장하고 불러오는 코드를 구현했다.
당연히 어려운 것도 어려운 것이지만, 무엇보다 큰 문제가 하나 있었다.
바로 쿠키를 저장하는 트리거가 로그인 버튼을 누를 때 발생했기 때문에
잘못된 아이디와 비밀번호를 입력하고 로그인 버튼을 누르면
그 잘못된 아이디와 비밀번호가 저장되고, 각 창에 입력되는 것이었다.
곰곰히 생각하다가 어렵게 만들어서 아쉽지만, 그전 코드를 포기하고
로그인이 성공하면 아이디와 비밀번호를 쿠키에 저장하고,
로그인 화면에서는 onload했을 때 쿠키 값이 있으면
불러오는 식으로 구현하기록 했다.
//쿠키 불러오기
var cookieID = getCookie("userId");
var cookiePW = getCookie("userPw");
쿠키 디버그 코드
// console.log("아이디 쿠키: "+ cookieID);
// console.log("비밀번호 쿠키: "+ cookiePW);
//아이디 쿠키가 있으면 아이디 창에 입력 + 아이디 저장 체크
if(cookieID){
$("#userId").val(cookieID)
$("#userIdSave").prop("checked",true);
} else {
$("#userId").val("")
$("#userIdSave").prop("checked",false);
}
//비밀번호 쿠키가 있으면 비밀번호 창에 입력 + 자동로그인 체크
if(cookiePW){
$("#userPw").val(cookiePW)
$("#autoLogin").prop("checked",true);
} else {
$("#userPw").val("")
$("#autoLogin").prop("checked",false);
}
//쿠키 불러오기 함수
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length === 2) return parts.pop().split(";").shift();
}
//로그인
@PostMapping("/Logined")
public String LoginToMypage(String userId, String userPw, HttpSession session, boolean userIdSave, HttpServletResponse response, boolean autoLogin) throws NoSuchAlgorithmException, UnsupportedEncodingException, GeneralSecurityException {
String realUserPw = sc.encrypt(userPw);
System.out.println(realUserPw);
System.out.println("아이디 저장: " + userIdSave); //체크되면 true
System.out.println("자동 로그인: " + autoLogin); //체크 안 되면 false
MemberDTO dto = serv.login(userId, realUserPw);
if (dto != null) {
session.setAttribute("loginUser", dto);
if(autoLogin) {
Cookie autoId= new Cookie("userId", userId);
Cookie autoPW= new Cookie("userPw", userPw);
autoId.setMaxAge(60*60*24);
autoPW.setMaxAge(60*60*24);
response.addCookie(autoId);
response.addCookie(autoPW);
// System.out.println("등록 오토 아이디"+ autoId);
// System.out.println("등록 오토 패스"+ autoPW);
} else {
Cookie autoId= new Cookie("userId", null);
Cookie autoPW= new Cookie("userPw", null);
autoId.setMaxAge(0);
autoPW.setMaxAge(0);
response.addCookie(autoId);
response.addCookie(autoPW);
// System.out.println("삭제 오토 아이디"+ autoId);
// System.out.println("삭제 오토 패스"+ autoPW);
if(userIdSave) {
Cookie id= new Cookie("userId", userId);
id.setMaxAge(60*60*24);
response.addCookie(id);
// System.out.println("등록 저장 아이디"+ id);
} else {
Cookie id= new Cookie("userId", null);
id.setMaxAge(0);
response.addCookie(id);
// System.out.println("삭제 저장 아이디"+ id);
}
}
return "main";
} else {
return "member/Find_Info/cantFindUserdata";
}
}
중복되는 쿠키 코드를 줄여보고 싶었지만
HttpServletResponse response
이 친구를 어떻게 처치할 줄 몰라서 그냥 적을 수 밖에 없었다...졸립기도 하
값 입력도 체크박스 체킹도 아주 잘 된다.
내?일 오늘 밤에는 전체 비밀번호 찾기 창과 회원가입 창에서
새로고침 불가능 함수와 강제 새로고침 시 세션 만료 뜨도록 하는 코드를 짤 예정이다.
그 외에는 openAPI 로그인과 회원가입 + 게시판 작성이 있다.
할 건 거의 다 해 간다...
'팀프로젝트 > SpringBoot' 카테고리의 다른 글
스프링 부트 팀플) 20240316 게시판 만들기_기본 토대 구축 (0) | 2024.03.16 |
---|---|
스프링 부트 팀플) 20240313~20240315_새로고침, 뒤로가기 방지 (0) | 2024.03.15 |
스프링 부트 팀플) 20240313_이메일 시스템 완성 (0) | 2024.03.13 |
스프링 부트 팀플) 20240312_Resource에 있는 이메일.html 사용하기 (0) | 2024.03.12 |
스프링 부트 팀플)_20240311 (0) | 2024.03.11 |