: 어느 저장 공간 같은 개념
: 어떤 인증 정보 (Session ID: 어떤 ID, 식별자 값)
서버가 "특정 유저가 로그인이 되었다" 라는 상태를 저장하는 방식
인증과 관련된 아주 약간의 정보만 서버가 가지고 있게 되고 유저의 이전 상태에 전부는 아니더라도 인증과 관련된 최소한의 정보를 저장해서 로그인을 유지시킨다
요런 느낌... ?
- 사용자가 로그인을 한다.
- DB에 사용자 정보가 있는지 대조를 한다.
- 실제 유저 테이블에 그 정보와 일치한다면
"인증이 통과되었네요~"
라 하고 세션 저장소에 해당 사용자가 로그인 되었다는 정보를 저장한다.- 세션 저장소에서 사용자 정보와는 관련 없는 난수인 세션 ID를 발급한다.
(** 만약 사용자 정보와 관련있는 세션 ID 라면 보안에 좋지 않다 !! )- 서버는 발급한 해당 세션 ID를 응답에 담아 보내준다.
- 브라우저에서는 세션 ID를 쿠키에 담아 보관하고 있다가 요청을 할 때 해당 세션 ID를 같이 보낸다.
(** 주로 HTTP Header에 담아서 보내준다)- 클라이언트 요청에서 쿠키를 발견했다면 서버에 저장되어 있던 정보와 비교해서 검증한다.
- 사용자 정보를 제대로 받아왔다면
"이 사용자는 로그인이 된 사용자"
라고 인증한다.- 로그인이 된 사용자에 따른 응답을 내보낸다.
문제점은 없었다.. 오늘은 공부한 내용을 써보았다!!