TIL. JWT(JSON Web Token)
JWT란?
JSON Web Token의 약자로 전자 서명(어떤 데이터가 정말 그 사람의 것이 맞는지 보장해주는것) 된 속성 정보(Claim)를 JSON 데이터 구조로 표현한 토큰.
일반적으로 클라이언트와 서버, 서비스와 서비스 사이 통신 시 권한 인가(Authoriztion)를 위해 사용하는 토큰이다. URL에 대해 안전한 문자열로 구성되어 있기 때문에 HTTP 어디든 위치할 수 있다.
JWT 는 어떤 상황에서 사용될까?
다음과 같은 상황에서 JWT 가 유용하게 사용 될 수 있습니다:
- 회원 인증:
유저가 로그인을 하면, 서버는 유저의 정보를 기반한 토큰을 발급하여 유저에게 전달해준다. 그 후, 유저가 서버에 요청을 할 때마다 JWT를 포함하여 전달한다. 서버가 클라이언트에게 요청을 받을 때 마다, 해당 토큰이 유효하고 인증됐는지 검증을 하고, 유저가 요청한 작업에 권한이 있는지 확인한 후 작업을 처리한다. - 정보 교류:
두 개체 사이에서 안정성있게 정보를 교환하기에 좋은 방법니다. 그 이유는, 정보가 서명(sign)이 되어 있기 때문에 정보를 보낸이가 바뀌진 않았는지, 정보가 도중에 조작되지 않았는지 검증할 수 있다.
JWT의 구조
🔹헤더(header)
Header는 토큰의 타입과 해시 암호화 알고리즘으로 구성되어 있다.
{
"typ": "JWT",
"alg": "HS256"
}
- typ : 토큰의 타입
- alg : 해시 알고리즘. 해시 알고리즘은 토큰을 검증 할 때 사용되는 signature 부분에서 사용된다.
🔹내용(payload)
- 토큰에 담을 클레임(claim) 정보를 포함하고 있다.
- 여기에 담는 정보의 한 '조각'을 클레임(claim)이라고 부르고, 이는 name/valu의 한 쌍으로 이뤄져있다. 토큰에는 여러개의 클레임을 넣을 수 있다.
- 등록된 (registered) 클레임
- 공개 (public) 클레임
- 비공개 (private) 클레임
🔹서명(signature)
서명(signature)은 헤더의 인코딩값과, 정보의 인코딩값을 합친 후 scret key를 포함하여 암호하되어 있다.
📚 Reference
JWT (JSON Web Token) 이해하기와 활용 방안 - Opennaru, Inc.
Author And Source
이 문제에 관하여(TIL. JWT(JSON Web Token)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dev_hyemi/JWT저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)