Back-End/백엔드 관련 정리

인증(2) - 쿠키와 세션

얄루몬 2022. 12. 5. 11:33

로그인 유지를 위한 세션 사용(쿠~키와 세~션)

  • 세션은 브라우저를 종료하고 다시 시작할 때 찾아갈 실마리가 없음
  • 이를 해결하기 위해서 쿠키에 세션 id를 저장해준다. 
  • 세션을 사용해서 정보를 저장하는 경우는 매번 반복해서 작업할 필요 없는 경우들이 있다...(로그인 유지 등..) 

쿠키에 세션 id를 저장하고 expire time을 주고 이 시간만큼 세션이 다시 찾아갈 수 있는 실마리를 줄 수 있도록 한다.

 

쿠키 

  • 개인적인 정보는 남기지 않는다.
  • 세션 id를 주고 expire time을 넣어서 해당 세션이 브라우저를 종료시켜도 이 아이디를 참고로 할 수 있게 한다.

 

세션

  • 로그인 아이디와 같은 중요 정보를 쿠키를 사용하지 않고 세션을 사용해서 로그인 정보를 남겨서 stateless 상태의 http가 아닌 지속 연결 상태를 유지해서 로그인과 같은 경우를 계속해서 유지할 수 있게 해주어야 한다.

 

서버가 여러대?

request.getSession() -> 서버가 여러대일 경우 내 요청이 바로 불러오지 못하기 때문에(참조를 못함) 별도의 레포지토리를 만들어서 쿠키에서 id 값을 가져와야 한다.(redis에서는 서버가 두대이상일 때 웹서버에서만 존재하는 것으로는 참조가 안 되기 때문에 레포지토리를 만들어서 참조할 수 있게 하는 방식..) 

 

웹서버 메모리에 저장 -> request에서 요청을 하게 되면 서버가 한 대라면 바로 참조를 해서 가져온다.