상세 컨텐츠

본문 제목

인증의 방식

스프링

by R4MeN 2024. 5. 22. 09:36

본문

쿠키-세션 방식의 인증

쿠키-세션 방식은 서버가 ‘특정 유저가 로그인 되었다’는 상태를 저장하는 방식임. 인증과 관련된 최소한의 정보를 서버에 저장하여 로그인을 유지함

 

과정

  1. 사용자가 로그인 요청을 보냄
  2. 서버는 DB의 유저 테이블에서 아이디와 비밀번호를 대조함
  3. 유저 정보가 일치하면 인증을 통과한 것으로 보고 "세션 저장소"에 해당 유저가 로그인 되었다는 정보를 저장함
  4. 세션 저장소에서는 유저 정보와 관련 없는 난수인 session-id를 발급함
  5. 서버는 로그인 요청에 대한 응답으로 session-id를 발급함
  6. 클라이언트는 session-id를 쿠키에 보관하고 이후의 모든 요청마다 session-id를 함께 보냄 (주로 HTTP 헤더에 담아 보냄)
  7. 서버는 클라이언트의 요청에서 쿠키를 발견하면 세션 저장소에서 쿠키를 검증함
  8. 유저 정보를 받아왔다면 이 사용자는 로그인이 되어있는 사용자임
  9. 이후 로그인된 유저에 따른 응답을 내어줌

 

 

JWT 기반 인증

JWT(JSON Web Token)란 인증에 필요한 정보들을 암호화시킨 토큰을 의미함. JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별함

 

과정

  1. 사용자가 로그인 요청을 보냄
  2. 서버는 DB의 유저 테이블에서 아이디와 비밀번호를 대조함
  3. 유저 정보가 일치하면 인증을 통과한 것으로 보고 유저의 정보를 JWT로 암호화하여 발급함
  4. 서버는 로그인 요청에 대한 응답으로 JWT 토큰을 발급함
  5. 클라이언트는 토큰을 저장소에 보관하고 이후의 모든 요청마다 토큰을 함께 보냄
  6. 서버는 클라이언트의 요청에서 토큰을 발견하면 토큰을 검증함
  7. 이후 로그인된 유저에 따른 응답을 내어줌

'스프링' 카테고리의 다른 글

p6spy-spring-boot-starter 라이브러리  (1) 2024.05.23
스프링 3 Layer Architecture  (0) 2024.05.22
스프링 한글 깨짐 현상 해결  (0) 2024.05.16
스프링 DAY 2  (0) 2024.05.15
스프링 DAY 1  (0) 2024.05.14

관련글 더보기