[Session]
: 서버와 클라이언트 간의 연결이 활성화 된 상태
(ex. 사용자가 인증에 성공한 상태)
- 서버가 클라이언트에 유일하고 암호화된 ID를 부여 (쿠키에 제공)
- 중요 데이터는 서버에 관리 (서버에 데이터를 저장)
세션기반 인증
[예시]
세션으로 유저를 저장하는 쇼핑몰에서 김코딩이 장바구니에 물건을 담으려는 경우
1) 사용자가 로그인 후 요청(장바구니에 청바지를 넣어줘)
2) DB에 정보를 저장
3) session_id를 반환
4) Set-Cookie에 session_id를 암호화 하여 저장
5) 사용자는 session_id를 가지고 장바구니 요청을 함
6) session_id를 확인 후 장바구니에 요청을 넣음
7) session_id가 유효하면 장바구니에 업데이트를 함
8) 업데이트 후 사용자에게 알림
* session_id는 각 세션을 구분할 수 있으며, 클아이언트에 세션 성공을 증명할 수단으로 제공함
따라서, 사용자의 로그인을 유지하기 위한 수단으로 쿠키를 사용하며, 쿠키에는 서버에서 발급한 세션 아이디를 저장함
>> sessioin_id를 발급받은 이후 따로 로그인으로 인증하지 않고 지속적으로 요청을 보낼 수 있음
로그아웃을 해야할 경우
- 서버 : 세션 정보를 삭제해야 함
- 클라이언트 : 쿠키를 갱신해야 함 (쿠키는 임의로 삭제가 불가능하기 때문에 key 값을 무효한 값으로 갱신함)
'공부 자료 > Spring' 카테고리의 다른 글
[Springboot 오류] 자바 파일 인식이 되지 않는 경우 (0) | 2022.12.20 |
---|---|
[Spring Security] Hashing & Salt (0) | 2022.11.22 |
[Spring Security] Cookie (0) | 2022.11.22 |
[Spring Security] HTTPS (HTTP+Secure) (0) | 2022.11.22 |
[Spring] 애너테이션 Annotation 정리 (계속 추가중) (1) | 2022.11.05 |