Cooper's devlog

4-2. 로그인 상태에 따른 메뉴 처리 및 로그아웃 본문

Programming/Spring-boot

4-2. 로그인 상태에 따른 메뉴 처리 및 로그아웃

cooper_dev 2020. 7. 20. 01:29

4-2. 로그인 상태에 따른 메뉴 처리 및 로그아웃

1. 강의 링크

https://www.youtube.com/watch?v=9xmTAmyv_ic&list=PLqaSEyuwXkSppQAjwjXZgKkjWbFoUdNXC&index=25


2. 강의 목표

  1. 로그인 여부에 따라 navigation bar의 메뉴 처리
  2. 로그아웃 기능 구현

3. 과정

1. 로그인에 따른 네비게이션바 관리

  • 회원가입 초기 데이터 setting하기
  • musatche 방식으로 .html파일 구현

 

2. 로그아웃 기능 구현하기

  • '로그아웃' href 수정
  • logout 기능 메소드 userController에서 생성

구현 형태

  • 로그인 시 네비게이션
    • 로그아웃
    • 개인정보 관리
  • 로그아웃 시, 네비게이션
    • 로그인
    • 회원가입

 

[1] 회원 가입의 초기 데이터 setting하기

 

(1) 'spring boot jpa initialization' 검색

  • static에 import.sql 파일 형태로 저장

  • src/main/resource에 저장(src/main/java : java관리 디렉토리) 

1
INSERT INTO USER (ID, USER_ID, PASSWORD, NAME, EMAIL) VALUES (1,'javajigi''test''재성''javajigi@gmail.com');
 

 

 

 

[2] musatche 방식으로 .html파일 구현

navigation.html

 

 

그런데, 해당 작업이 되지 않는다....;;;

  • 'mustache spring session' 구글링 결과

  • src/main/resources templates application.properties에 아래 내용 설정

  • 의미: 세션에 담긴 데이터를 모델에 담아서 template엔진으로 전달

 
spring.mustache.expose-session-attributes=true
 

 

2. 로그아웃 기능 구현하기

  • '로그아웃' href 수정
  • logout 기능 메소드 userController에서 생성

(1) '로그아웃' href 수정

  • navigation.html에서 로그아웃 li > href 내용 : /users/logout으로 수정

navigation.html

 

(2) logout 기능 메소드 userController에서 생성

  • session.removeAttribute("객체이름") : 세션에 담긴 데이터 제거

  • (데이터를 제거하지 않으면,여러 웹페이지를 이동할 수 있음)

  • 추가 세션 동작 원리 등 관련 추가 공부 필수!
1
2
3
4
5
6
@GetMapping("/logout")
    public String logout(HttpSession session) {
        session.removeAttribute("user");
        
        return "redirect:/";
    }
 

 

 

(3) 구현 확인

 

(1) 로그인

로그인 화면

(2) 로그인 완료

 

(3) 로그아웃


 

 

Comments