[ 인증과 인가 ]
인증
: 해당 유저가 실제 유저인지 확인하는 것
인증을 유지하는 방법
A. 쿠키세션 방식
(쿠키 : 토큰 저장소
세션 : 인증정보
- 서버가 특정 유저가 로그인 되었다는 상태를 저장하는 방식
- 유저의 이전 상태의 정보를 저장해서 로그인을 유지시킴
- 사용자가 로그인
- 사용자 확인 - DB와 대조 후 결과 리턴
- 실제 유저 테이블의 정보와 일치한다면 인증 통과
- 해당 유저가 로그인 되었다는 정보를 세션에 저장
- 유저의 정보와 관계없는 세션 ID 발급
- 서버는 해당 발급을 응답에 담아서 알려줌
- 세션 아이디를 큐키라는 저장소에 보관, 요청할 때마다 세션 아이디를 같이 보냄 (HTTP 헤더에 담겨서 보내짐)
- 요청 중 쿠키를 발견했다면, 세션 저장소의 정보와 비교해서 검증 - 제대로 된 정보라면 로그인 된 사용자라고 인증가능
B. JWT 기반 인증
- JSON 형식의, 웹에서 사용하는 토큰
- 인증에 필요한 정보를 암호화 시킴
- 사용자 로그인 → 서버에서 DB 찾아서 대조
- 테이블 정보와 일치하면 → 유저에 대한 정보를 JWT로 암호화
- 암호화 된 토큰을 응답에 실어서 내보냄 (일반적으로 헤더)
- 쿠키 저장소에 보관을 하다가 요청할 때마다 토큰을 같이 보냄
- 받은 토큰을 검증하고 유저에 따른 응답 내보냄
인증 유지 방법의 가장 큰 차이점 : 세션 저장소의 유무 !
- 쿠키세션 : 정보를 보관하기 위한 세션 저장소가 필요함
- JWT : 토큰 자체를 브라우저에 던짐
[ 쿠키와 세션 ]
: HTTP에 상태 정보를 유지하기 위해 사용됨
쿠키
쿠키 확인하는 방법
- F12 > 상단 application > cookies
- name : 쿠키 구별 key
value : 쿠키의 값
domain : 쿠키가 저장된 도메인 (여러 경로에 나눠서 저장될 수 있음)
path : 경로 expires : 만료기한
size
. . .
세션
: 서버에서 일정 시간동안 클라이언트 상태를 유지하기 위해 사용됨
세션 동작 방식
- 클라이언트가 요청 → 서버에서 세션 아이디 생성, 쿠키에 담아 전달
- 클라이언트에 세션 아이디가 저장됨
- 클라이언트가 세션 아이디값을 포함해서 요청 → 세션 아이디 확인 후 이 전 요청과 같은 클라이언트인지 확인
'스파르타 내배캠' 카테고리의 다른 글
[TIL] #23. 연관관계 (0) | 2024.05.24 |
---|---|
[TIL] #22. 4주차 강의 (0) | 2024.05.22 |
[TIL] #20. Transaction (0) | 2024.05.20 |
[TIL] #19. Spring + JPA (0) | 2024.05.17 |
[TIL] #18. spring 2주차 강의 (0) | 2024.05.17 |