[SPRING BOOT] 세션을 이용한 로그인 구현
김영한 강사님의 스프링 MVC 2편을 듣고 개인 토이프로젝트에 로그인 기능을 구현해 보았다.
https://github.com/elyudwo/toyProjectBoard
GitHub - elyudwo/toyProjectBoard
Contribute to elyudwo/toyProjectBoard development by creating an account on GitHub.
github.com
로그인 순서 흐름
1. 로그인 화면에서 회원 id , 회원 password 입력
2. dto 로 가져온 객체를 dao로 변환해 DB 아이디와 패스워드를 꺼내 service 계층에 전달
3. service 에서 올바른 로그인인지 확인 후 올바른 로그인일 경우 Member 반환 틀린 로그인일 경우 null 반환
4. 올바른 로그인일 경우 타임리프를 이용한 SSR 로 회원 이름을 홈 화면에 출력 // 아닐경우 회원 이름 없는 홈 화면 출력
로그인을 하기 위해서 회원가입을 해야하므로 id : hi , password : leeyj 로 회원을 하나 생성해준다.
이제 로그인 화면에서 아까 만든 아이디인 hi 와 leeyj 를 입력해주면 컨트롤러로 hi, leeyj 가 MemberForm dto로 변환된다.
@PostMapping 을 통해 dto 로 받은 Member 아이디와 비밀번호를 service 로직에서 검사한다.
로그인을 올바르게 입력했기 때문에 if 문을 실행하지 않고 세션을 생성한다.
나중에 member 값을 찾아오기 위한 key 값인"loginMember" 와 로그인한 유저 정보인 member를 setAttribute로 세션에 삽입.
세션을 가져와 세션에 값이 없을 경우 기본 home 으로 값이 있을 경우 렌더링된 members/loginHome 으로 보내준다.
쿠키 값이 생성된 모습
여기서 key 값은 톰캣에서 생성해준다.