250x250
Notice
Recent Posts
Recent Comments
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- jsonwebtoken
- mongodb
- wil
- EC2
- mongoose
- await
- moment
- TypeScript
- single quote
- Find
- TailwindCSS
- flutter
- AWS
- JavaScript
- Nodejs
- nginx
- css
- https
- atlas
- MYSQL
- Express
- sequelize
- Node.js
- RDS
- til
- double quote
- async
- certbot
- findByIdAndDelete
- clipBehavior
Link
Archives
기억 휘발 방지소
[Web] JWT (Json Web Token) 본문
728x90
반응형
📌 JWT (Json Web Token)
JWT는 일반적으로 클라이언트와 서버, 서비스와 서비스 사이 통신 시 권한 인가(Authorization)을 위해 사용하는 토큰이다.
JWT는 점(.)을 구분자로 해서 다음 3가지로 구분된다.
HEADER.PAYLOAD.SIGNATURE
- HEADER: 토큰 종류와 해시 알고리즘 정보가 들어있다.
- PAYLOAD: 토큰의 내용물로 인코딩된 부분이다.
- SIGNATURE: 헤더와 페이로드를 합친 문자열을 서명한 값이다. 서명은 헤더의 alg에 정의된 알고리즘과 비밀키를 통해 생성된다. 시그니처는 JWT 비밀키로 만들어진다. 따라서 비밀키가 노출되면 토큰이 위조될 수 있다.
이렇게 점을 구분자로해서 헤더, 페이로드, 시그니처를 합치면 JWT 토큰이 완성된다.
위의 이미지는 jwt.io에 접속하면 볼 수 있다.
왼쪽의 Encoded가 완성된 JWT 토큰이고 오른쪽 Decoded가 토큰의 구성요소들이다.
✅ 장점
Payload에 데이터를 직접 담을 수 있기 때문에 데이터를 잘 담아놓으면 데이터를 데이터베이스에서 조회하지 않을 수도 있다. (단, 페이로드에는 노출되어도 되는 정보만 넣어야한다.)
❌ 단점
토큰의 길이가 길기 때문에 용량이 커서 요청 시 데이터 양이 증가한다.
❗ 참고한 문서
728x90
반응형
'Web' 카테고리의 다른 글
[Web] Heroku로 앱 배포하기 (0) | 2021.11.10 |
---|---|
Babel (0) | 2021.09.13 |
MVC (Model View Controller) (0) | 2021.09.10 |