영원히 흘러가는 강
JWT (JSON Web Token) ? 본문
728x90
HTTP 요청과 응답은 비상태성과 비연결성의 특징을 가지고 있다
그리하여 우리는 데이터를 주고받으며 기록하고 싶은 사항이 있다면 쿠키 , 세션 , 웹스토리지 등에 저장하여 사용한다.
아래는 JWT에 대해 알아보기에 앞서 쿠키 , 세션 , 웹 스토리지에 대해 알아보고 싶다면 확인해보자
https://ryugaram.tistory.com/159
JWT ?
JWT 는 이름에서 부터 나와있듯이 JSON의 구조이며 , Web Token이다.
디코딩이 가능하기에 보안에 취약하여 payload 부분에는 중요 정보는 담지 않아야 한다!!!!!
JWT 구조
순서대로 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