쿠키
쿠키
로그인
@Slf4j
@Controller
@RequiredArgsConstructor
public class LoginController {
...
@PostMapping("/login")
public String login(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletResponse response) {
...
// 시간 정보를 주지 않았으므로 세션 쿠키가 된다. 즉, 브라우저 종료 시 로그아웃 된다.
Cookie idCookie = new Cookie("memberId", String.valueOf(loginMember.getId()));
// HTTP 응답에 쿠키를 넣어 보낸다.
response.addCookie(idCookie);
return "redirect:/";
}
}@Slf4j
@Controller
@RequiredArgsConstructor
public class HomeController {
@GetMapping("/")
/*
HttpServletRequest 등 쿠키를 가져오는 방법은 많으나 스프링이 제공하는 @CookieValue를 사용해보자.
로그인 안 한 사용자도 home에 접속할 수 있어야 하므로 required는 false로 둔다.
들어오는 memberId는 String이지만 스프링이 Long으로 컨버팅해준다.
*/
public String homeLogin(@CookieValue(name = "memberId", required = false) Long memberId, Model model) {
if (memberId == null) {
return "home";
}
Member loginMember = memberRepository.findById(memberId);
if (loginMember == null) {
return "home";
}
model.addAttribute("member", loginMember);
return "loginHome";
}
}


로그아웃


보안 이슈
대안
Last updated