본문 바로가기
✨ Back-end/Spring-Boot

[Spring] 쇼핑몰 - 12 Session이용해서 로그인, 로그아웃시키기

by 환풍 2023. 3. 28.
728x90

 

header.html

 

header.html에 회원가입에도 id가 memId가 있고, 로그인에도 id가 memId가 있다.

중복으로 줬는데 오류는 안나지만 썩 좋은 코드는 아니다. 하지만 잘 갖고만 오면 문제는 없다.

자바스크립트에서 이런식으로 memId를 불러온다면 코드 젤 처음에 실행된 memId를 가지고온다.

따라서 이런식으로 loginModal 안에 있는 memId를 들고오겠다고 정확하게 명칭을 줘야한다.

 

MemberController 컨트롤러

 

 member-mapper

STATUS에 != 3 을 준 이유는

위와 같이 데이터베이스에서 3은 탈퇴회원으로 분류하였기 때문이다.

 

MemberService 인터페이스

매개변수 및 리턴 타입 결정 방법(우선적으로 실행 시 쿼리를 작성)
매개변수 : 쿼리 실행 시 빈 값을 채울 용도
1. 쿼리에서 채워 줄 값이 없을 경우 : 매개변수 없음
2. 채워줄 값이 하나일 경우
 2-1) 채워줄 값이 숫자인 경우 : 매개변수 int형 하나
 2-2) 채워줄 값이 문자인 경우 : 매개변수 String형 하나
3. 채워줄 값이 여러개인 경우 : 매개변수는 VO 객체.
리턴타입 : 쿼리 실행 결과를 어떻게 받아올지에 대한 정의
INSERT, UPDATE, DELETE 쿼리 실행 결과는
리턴타입을 int 혹은 void 사용하면됨. int로 받을 땐 return 필요o  void는 필요x
SELECT 쿼리 결과의 리턴타입은 크게 두 가지로 나뉨.
조회결과 데이터가 무조건 한줄만 조회 : VO 객체.
조회 결과 데이터가 0줄이상 가변적일 경우 : List<VO> 객체.

MemberServiceImpl 클래스

 

MemberController 컨트롤러

로그인 컨트롤러에 HttpSession을 추가해주었다.

loginInfo가  널이면 false , 널이 아니면 true 를 리턴시키며 데이터를 확인할 수 있다.

 

header.js

로그인이 성공하게 되면 location.href = '/'; 로인해 index 컨트롤러로 갈 수 있다..

 

indexController 컨트롤러

index 컨트롤러에서 로그인 사용자의 정보에 따라 경로를 또 나눠서 다른 컨트롤러로 이동시킬 수 있다.

 

데이터베이스 조회결과 관리자의 MEM_ROLE은 ADMIN 으로 되어있고,

환풍의 MEM_ROLE은 USER로 되어있다. 이를 조건으로 각각 페이지를 다르게 해주었다.

 

header.html

header.html에서 로그인 했을때 session의 존재 여부에 따라 memName을 지정해 주었다.

만약 로그인 되어있다면 logOut 링크도 만들어 클릭시 로그아웃 컨트롤러로 이동한다.

 

MemberController 컨트롤러

컨트롤러에서 그냥 HttpSession 객체를 가지고와서 session을 없애주기만 하면서 인덱스 컨트롤러 파일로 return 시키고 끝내주었다.

다음 포스팅에서는 관리자 메뉴와 사용자메뉴, 메인 메뉴와 서브메뉴 띄우기를 해볼 것이다.

 

반응형

댓글