본문 바로가기
Spring

Session, cookie, token 차이

by 루에 2022. 7. 8.
반응형

요약

Session / Cookie

계정정보를 header에 넣는다.

세션 저장소에 정보를 저장한다.

session은 서버에서 보관, cookie는 클라이언트에서 보관

 

발급 및 사용 절차

  1. 사용자가 로그인한다.
  2. 서버에서 사용자 정보를 이용하여 고유ID를 발급해 세션 저장소에 저장하고 그와 연결되는 세션ID를 만들어 클라이언트로 응답한다.
  3. 클라이언트는 2에서 받은 세션ID를 쿠키에 저장해 요청이 필요할 때마다 헤더에 넣어 보낸다.
  4. 서버는 쿠키를 받아 세션저장소에서 확인 후, 요청된 데이터를 응답한다.

Token

JWT(Json Web Token)은 인증정보를 암호화시킨 토큰을 의미한다. 사용자는 Access Token을 헤더에 실어 서버로 보낸다. 토큰은 마치 임시비밀번호처럼 동작하며, 제한 기간 내에 사용되고 이후에는 새로운 토큰을 발급해야한다.(리프레시 토큰)

 

토큰 구조

Header :: Header, Payload, Verify Signature 를 암호화할 방식(alg), 타입(Type) 등을 포함합니다.
Payload :: 서버에서 보낼 데이터 - 일반적으로 user의 id, 유효기간 포함
Verify Signature :: Base64 방식으로 인코딩한 Header, Payload, Secret key 를 더한 후 서명됩니다.

 

발급 및 사용 절차

  1. 사용자가 로그인을 합니다.
  2. 서버에서는 계정 정보를 읽어 사용자를 확인 후, 사용자의 고유 ID 값을 부여한 후 기타 정보와 함께 Payload 에 집어넣습니다.
  3. JWT 토큰의 유효기간을 설정합니다.
  4. 암호화할 Secret key 를 이용해 Access Token 을 발급합니다.
  5. 사용자는 Access Token 을 받아 저장 후, 인증이 필요한 요청마다 토큰을 헤더에 실어 보냅니다.
  6. 서버에서는 해당 토큰의 Verify Signature 를 Secret key 로 복호화한 후, 조작 여부, 유효기간을 확인합니다.
  7. 검증이 완료되었을 경우, Payload 를 디코딩 하여 사용자의 ID 에 맞는 데이터를 가져옵니다.

 

자세한건 아래 참조

https://tofusand-dev.tistory.com/89

 

Cookie, Session, Token 의 차이점

Cookie, Session, Token 의 차이점 Cookie, Session, Token 의 차이점 계정 정보를 요청 Header 에 넣는 방식 Session / Cookie 방식 인증 절차 Session 과 Cookie 의 차이점 장단점 Token 기반 인증 방식 JWT Tok..

tofusand-dev.tistory.com

 

반응형

댓글