v2-03. 로그인 유지 세션유지

kimsoapsoap's avatar
Sep 19, 2024
v2-03. 로그인 유지 세션유지
 
 
 
 
 

1. mastache 문법

💡
{{#A}} a {{/A}}{{^A}} b {{/A}} 속성값에 A가 존재하면 a코드 실행, 속성값에 A가 존재하지 않으면 b 코드 실행
 
header.matache
“sessionUser” 라는 속성값이 존재하면 글쓰기&로그아웃, 존재하지 않으면 회원가입&로그인 표시를 위해서 header.matache 내용을 다음과 같이 수정해준다.
 
<nav class="navbar navbar-expand-sm bg-dark navbar-dark"> <div class="container-fluid"> <a class="navbar-brand" href="/">Metacoding</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#collapsibleNavbar"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="collapsibleNavbar"> <ul class="navbar-nav"> {{#sessionUser}} <li class="nav-item"> <a class="nav-link" href="/api/board/save-form">글쓰기</a> </li> <li class="nav-item"> <a class="nav-link" href="/logout">로그아웃</a> </li> {{/sessionUser}} {{^sessionUser}} <li class="nav-item"> <a class="nav-link" href="/join-form">회원가입</a> </li> <li class="nav-item"> <a class="nav-link" href="/login-form">로그인</a> </li> {{/sessionUser}} </ul> </div> </div> </nav>
 
 
 

2. 로그인 유저 정보 session에 저장

로그인 할 때 로그인한 유저 정보를 sessionUser에 넣고 session의 속성값에 넣어 준다.
@PostMapping("/login") public String login(UserRequest.LoginDTO loginDTO) { User sessionUser = userRepository.findByUsernameAndPassword(loginDTO.getUsername(), loginDTO.getPassword()); session.setAttribute("sessionUser", sessionUser); return "redirect:/board"; }
 
💡
참고 로그인 정보 유지를 위한 것(예를 들면 로그인 유저 정보)은 session에 저장해서 전달하고 게시판 정보 전달은 request에 저장해서 전달한다.
 
 

3. session 정보 활용

 
이제 session에 로그인 유저 정보를 저장했으므로
컨트롤러에서 간단한 인증 확인은 다음과 같이 해주면 된다.
User sessionUser = (User) session.getAttribute("sessionUser"); if (sessionUser == null) { //인증 실패시 코드 실행; }
 
 
Share article

zerfa