서버/토이프로젝트 <게시판>

[SPRING BOOT] 세션을 이용한 로그인 구현

이영재의오른발 2023. 1. 20. 21:19
반응형

김영한 강사님의 스프링 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 값은 톰캣에서 생성해준다.

 

 

728x90
반응형