์ธ์ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ข ๋ฃ๋๊ธฐ ์ ๊น์ง ์น๋ธ๋ผ์ฐ์ ์ ์ฟ ํค์ ๋ณด๊ฐ ๋จ์์์ด์ ํ๋ฒ ๋ก๊ทธ์ธ ํ ํ์๋ ๋ก๊ทธ์์ ํ์ ์ถ๊ฐ์ ์ธ ์ ๋ณด์ ๋ ฅ์์ด ๋ฐ๋ก ๋ก๊ทธ์ธ ํ ์ ์๋ค.
@GetMapping("/login")
public String loginForm(@ModelAttribute("loginForm") LoginForm form) {
return "login/loginForm";
}
@PostMapping("/login")
public String login(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult, HttpServletResponse response) {
if (bindingResult.hasErrors()) {
return "login/loginForm";
}
Member loginMember = loginService.login(form.getLoginId(), form.getPassword());
if (loginMember == null) {
bindingResult.reject("loginFail", "์์ด๋ ๋๋ ๋น๋ฐ๋ฒํธ๊ฐ ๋ง์ง ์์ต๋๋ค.");
return "login/loginForm";
}
//๋ก๊ทธ์ธ ์ฑ๊ณต ์ฒ๋ฆฌ TODO
//์ฟ ํค์ ์๊ฐ ์ ๋ณด๋ฅผ ์ฃผ์ง ์์ผ๋ฉด ์ธ์
์ฟ ํค(๋ธ๋ผ์ฐ์ ์ข
๋ฃ์ ๋ชจ๋ ์ข
๋ฃ)
Cookie idCookie = new Cookie("memberId", String.valueOf(loginMember.getId()));
response.addCookie(idCookie);
return "redirect:/";
}
@PostMapping("/logout")
public String logout(HttpServletResponse response) {
expireCookie(response, "memberId");
return "redirect:/";
}
private void expireCookie(HttpServletResponse response, String cookieName) {
Cookie cookie = new Cookie(cookieName, null);
cookie.setMaxAge(0);
response.addCookie(cookie);
}
ํ์ง๋ง ๋ณด์์ ํฐ ๋ฌธ์ ๊ฐ ์๋๋ฐ,
1. ์ฟ ํค ๊ฐ์ ์์๋ก ๋ณ๊ฒฝํ ์ ์๋ค.
=> ํด๋ผ์ด์ธํธ๊ฐ ์ฟ ํค๋ฅผ ๊ฐ์ ๋ก ๋ณ๊ฒฝํ๋ฉด ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋๋ค
2. ์ฟ ํค์ ๋ณด๊ด๋ ์ ๋ณด๋ ํ์ณ๊ฐ ์ ์๋ค.
=> ์ฟ ํค์ ๊ฐ์ธ์ ๋ณด๋ ์ ์ฉ์นด๋ ์ ๋ณด๊ฐ ์๋ค๋ฉด?
=> ํด์ปค๊ฐ ์ฟ ํค๋ฅผ ํ์ณ๊ฐ์ ๊ทธ ์ฟ ํค๋ก ์ ์์ ์ธ ์์ฒญ์ ๊ณ์ ์๋ํ ์ ์๋ค.
๋์
1. ์ฟ ํค์ ์ค์ํ ๊ฐ์ ๋ ธ์ถํ์ง ์๊ณ , ์ฌ์ฉ์ ๋ณ๋ก ์์ธก ๋ถ๊ฐ๋ฅํ ํ ํฐ(๋๋ค ๊ฐ)์ ๋ ธ์ถํ๊ณ , ์๋ฒ์์ ํ ํฐ๊ณผ ์ฌ์ฉ์ id๋ฅผ ๋งคํํด์ ์ธ์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฒ์์ ํ ํฐ์ ๊ด๋ฆฌํ๋ค.
2. ํ ํฐ์ ํด์ปค๊ฐ ์์์ ๊ฐ์ ๋ฃ์ด๋ ์ฐพ์ ์ ์๋๋ก ์์ ๋ถ๊ฐ๋ฅ ํด์ผ ํ๋ค.
3. ํด์ปค๊ฐ ํ ํฐ์ ํธ์ด๊ฐ๋ ์๊ฐ์ด ์ง๋๋ฉด ์ฌ์ฉํ ์ ์๋๋ก ์๋ฒ์์ ํด๋น ํ ํฐ์ ๋ง๋ฃ์๊ฐ์ ์งง๊ฒ(์:30๋ถ)์ ์งํ๋ค. ๋๋ ํดํน์ด ์์ฌ๋๋ ๊ฒฝ์ฐ ์๋ฒ์์ ํด๋น ํ ํฐ์ ๊ฐ์ ๋ก ์ ๊ฑฐํ๋ฉด ๋๋ค.
๊ทธ๋์ ๋์์ฑ ์ผ๋ก ๋์จ ๊ฒ์ด ์ธ์ ์ธ๋ฐ, ์ธ์ ์ ์๋ฒ์ ์ค์ํ ์ ๋ณด๋ฅผ ๋ณด๊ดํ๊ณ ์ฐ๊ฒฐ์ ์ ์งํ๋ ๋ฐฉ๋ฒ์ด๋ค.
ํ์๊ณผ ๊ด๋ จ๋ ์ ๋ณด๋ ์ ํ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ์ง ์๊ณ , ์ค์ง ์ถ์ ๋ถ๊ฐ๋ฅํ ์ธ์ ID๋ง ์ฟ ํค๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ๋ค.
'Languages | Frameworks > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] ์ธ์ ํ์์์ (0) | 2022.06.02 |
---|---|
[Spring] jsessionid๋ฅผ url์ ๋ ธ์ถ์์ํค๊ธฐ(์ฟ ํค๋ฅผ ํตํด์๋ง ์ธ์ ์ ์ง) (0) | 2022.06.02 |
[Java] ์์๋๋ก ์ ์ฅ, ์ถ๋ ฅํ๋ HashMap - LinkedHashMap (0) | 2022.05.02 |
[SpringBoot] RestApi ๊ตฌํํ๊ธฐ ์ํ List<Map> ์ฌ์ฉ (0) | 2022.05.02 |
[SpringBoot] mybatis resultType HashMap Null๊ฐ ๋ฐ๊ธฐ (0) | 2022.05.02 |