영원히 흘러가는 강

JWT (JSON Web Token) ? 본문

카테고리 없음

JWT (JSON Web Token) ?

double_R_one_G 2024. 3. 15. 14:45
728x90

 

HTTP 요청과 응답은 비상태성과 비연결성의 특징을 가지고 있다

그리하여 우리는 데이터를 주고받으며 기록하고 싶은 사항이 있다면 쿠키 , 세션 , 웹스토리지 등에 저장하여 사용한다.

아래는 JWT에 대해 알아보기에 앞서 쿠키 , 세션 , 웹 스토리지에 대해 알아보고 싶다면 확인해보자

https://ryugaram.tistory.com/159

 

쿠키 (Cookie) , 세션 (Session) , 웹 스토리지(Local storage,Session storage) 차이

우선 각각의 차이와 장단점을 알아보기전에 우리는 왜 이걸 사용해야하는걸까? HTTP 요청과 응답은 흔히들 비연결성과 비상태성을 가졌다고한다. - 응답을 주고받으면 바로 연결을 끊고 , 새로운

ryugaram.tistory.com

 

 


 

JWT ? 

 

JWT 는 이름에서 부터 나와있듯이 JSON의 구조이며 , Web Token이다.

 

디코딩이 가능하기에 보안에 취약하여 payload 부분에는 중요 정보는 담지 않아야 한다!!!!!

 

 

 

JWT 구조

출처 http://www.opennaru.com/opennaru-blog/jwt-json-web-token/

 

순서대로 header , payload , signature로 나뉘어진다.

아래의 코드는 jwt.io에 예시로 작성된 사항을 그대로 붙여온거라 그 외에 추가 사항들 또한 작성해보았다

 

header

{
  "alg": "HS256",
  "typ": "JWT"
}

 

alg : 알고리즘 종류에 대해 작성 (HS256 , HS512 등)

typ : 토큰 유형에 대해 작성

 

 

payload

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

 

sub : 토큰 제목 
name : 담아 보내고 싶은 JSON 값 (중요 정보는 제외 필수!!)

iat : 토큰 발급 시간

exp : 토큰 만료 시간

 

 

signature

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  your-256-bit-secret
)

 

  • header에서 정의한 알고리즘 방식 활용
  • header + pyload를 헤더에서 정의한 알고리즘으로 암호화

 

 


 

JWT는 회원에 대한 데이터를 인증 / 인가를 거쳐 로그인 , 로그인 유지를 한다.

 

다음 컨텐츠는 인증 / 인가에 대해 알아볼 예정이다!

728x90
Comments