본문 바로가기
카테고리 없음

spring 회원기능 3 로그인기능

by 승현0604 2023. 5. 21.

전에 했던대로 로그인도 마찬가지로 memberDTO를 그대로 가지고 loginform을 get하는 controller를 생성하고

sql - > DAO - > Service -> Controller순서대로 코드를 작성해 나가면 된다.  

 

githhub에 올라온상태~

 

https://github.com/cjstmdgusqw/SpringFramework.git

 

GitHub - cjstmdgusqw/SpringFramework

Contribute to cjstmdgusqw/SpringFramework development by creating an account on GitHub.

github.com

하지만 로그인은 살짝의 차이는 있다 

 

아 그전에 sql에 적을때 우리가 평소에 많이보는 코드가 있다 바로 resultType과 paramType이 두개가있는데 이 둘의 차이점을 먼저 알아보고자 한다. 로그인을 할때 사용하는 select문에 이 두개가 나오기 떄문이다.

 

일단 로그인을 하기위해서는 memberBoard테이블에 있는 수많은 회원가입한 개인정보 중 where을 비교해서 사용자가 id를 입력했을 때 그 아이디와 일치하는 정보에 대한 칼럼들을 (*)을 전부 가져온다는 의미를 말하기도 한다. 

 

그랬을때 우리가 사용해야하는 파라미터는 id 이기에 ParamaterType가 String형태가 된다는 의미가 되는것이다. 

띠용 다시 설명하자면 where id = #{id}이기에 id의 type인 String을 이용해야 한다는 것이다 

 

그리고 그 반환값은 memberDTO그 자체이기에 resulttype는 위와같이 나오게 되는것이다. 이 둘의 차이는 이렇게 정리가 가능할듯 ㅎㅎ

 

이제 본론!

로그인했을때 아까 회원가입과의 차이는 Session에 저장해야한다는 점이다. 

바로 세션에 set해야한다는 점이다. Session에 로그인을 하면 화면에 다르게 나타나게끔 설정도 해줄 수 있는데 일단 session에 저장하는 방법을 알아보겠다. 

 

세션이란 일정 시간동안 같은 사용자(정확하게 브라우저를 말한다)로 부터 들어오는

일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술이라고 한다.

또한 여기서 일정 시간이란 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점으로부터 웹 브라우저를 종료함으로써 연결을 끝내는 시점을 말하며

즉, 방문자가 웹서버에 접속해 있는 상태를 하나의 단위로 보고 세션이라고 칭한다는 것.

 

라고...한다 ㅎㅎ

기존 jsp를 본다면 

 

c태그를 사용해서 sessionScope.id 한마디로 session에 id가 null과 eq(똑같다면)하다면 로그인이 화면상에 보여야하고 아니라면 로그아웃이 보여야한다는것이다. 

사실 이때문에 session을 쓰는것은 아니지만 이렇게하면 로그인하기전과 후를 구별함으로써 사용자에게 제약을 걸어줄 수 있다. 

코드는 다음과 같은 httpSession에 넣어주면 된다. 물론 일치할때 ㅎㅎ