본문 바로가기
스파르타 내배캠

[TIL] #21. spring 3주차 강의

by saemsaem 2024. 5. 21.


 

 [ 인증과 인가 ] 

인증

: 해당 유저가 실제 유저인지 확인하는 것

 

인증을 유지하는 방법

A. 쿠키세션 방식
    (쿠키 : 토큰 저장소
     세션 : 인증정보

  • 서버가 특정 유저가 로그인 되었다는 상태를 저장하는 방식
  • 유저의 이전 상태의 정보를 저장해서 로그인을 유지시킴
  1. 사용자가 로그인
  2. 사용자 확인 - DB와 대조 후 결과 리턴
  3. 실제 유저 테이블의 정보와 일치한다면 인증 통과
  4. 해당 유저가 로그인 되었다는 정보를 세션에 저장
  5. 유저의 정보와 관계없는 세션 ID 발급
  6. 서버는 해당 발급을 응답에 담아서 알려줌
  7. 세션 아이디를 큐키라는 저장소에 보관, 요청할 때마다 세션 아이디를 같이 보냄 (HTTP 헤더에 담겨서 보내짐)
  8. 요청 중 쿠키를 발견했다면, 세션 저장소의 정보와 비교해서 검증 - 제대로 된 정보라면 로그인 된 사용자라고 인증가능

B. JWT 기반 인증

  • JSON 형식의, 웹에서 사용하는 토큰
  • 인증에 필요한 정보를 암호화 시킴
  1. 사용자 로그인 → 서버에서 DB 찾아서 대조
  2. 테이블 정보와 일치하면 → 유저에 대한 정보를 JWT로 암호화
  3. 암호화 된 토큰을 응답에 실어서 내보냄 (일반적으로 헤더)
  4. 쿠키 저장소에 보관을 하다가 요청할 때마다 토큰을 같이 보냄
  5. 받은 토큰을 검증하고 유저에 따른 응답 내보냄

인증 유지 방법의 가장 큰 차이점 : 세션 저장소의 유무 !
 - 쿠키세션 : 정보를 보관하기 위한 세션 저장소가 필요함
 - 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