본 문서에서는 블록 코딩 방식으로 JWT 토큰의 발급과 검증 방법을 설명합니다.
Index
JWT 소개
JWT 블록
•
Authorization > JWT 블록 카테고리의 블록을 통해 JWT 발급과 검증이 가능합니다.
1) JWT 토큰 발급 블록셋
•
JWT 토큰을 발급하여 반환합니다.
No. | 기능 |
1 | Jwt Token의 해시 알고리즘을 지정합니다. |
2 | Jwt 발급을 위한 Secret Key 혹은 인증서를 등록합니다. |
3 | Jwt의 정보(claim)를 등록합니다. |
2) JWT 토큰 검증 블록셋
•
JWT 토큰 검증하여 정보를 반환합니다.
No. | 기능 |
1 | Jwt Token의 해시 알고리즘을 지정합니다. |
2 | Jwt 검증을 위한 Secret Key 혹은 인증서를 등록합니다. |
3 | Jwt의 정보(claim)를 등록합니다. |
JWT 설정 블록
1) JWK
•
JWK는 Jason Web Key로 암호화 키를 표현하기 위한 다양한 정보를 담은 JSON 객체에 관한 표준입니다.
No. | 기능 |
1 | JWT 발급을 위한 인증서 정보를 등록합니다. |
2 | JWT 암호화 키를 등록합니다. |
2) Header
•
Jwt Header 블록을 통해 토큰의 알고리즘 타입을 지정합니다.
•
버튼을 클릭하여 알고리즘 타입을 추가, 삭제 할 수 있습니다.
•
지원 가능한 타입은 HS256, HS384, HS512, RS256, RS384, RS512입니다.
3) Payload
•
Payload는 Jwt의 정보(claim)를 담고 있습니다.
•
Claim은 토큰에 대한 정보들을 담기 위하여 내역이 지정돼 있습니다. 모두 선택적으로 사용할 수 있지만(optional) 가급적 사용하도록 권고하고 있습니다.
•
별도 claim을 추가할 경우 add claim에 HashMap 형태로 추가합니다.
이름 | 내용 | Data Type | Default |
issuer | JWT 발급자 | string | - |
subject | JWT 제목 | string | - |
audience | JWT 대상 | string(ArrayList) | - |
experation | JWT 만료 시간을 Unix Timestamp 형식으로 입력 | integer | - |
not before | Unix Timestamp 형식으로 입력된 시점 이전까지는 토큰이 처리되지 않음 | integer | null |
jwtid | JWT 고유 식별자로 중복 처리 방지 목적으로 사용
일회용 토큰에 활용됨 | string | - |
JWT 토큰 블록 예제
1) JWT 토큰 발급
2) JWT 토큰 검증
•
발급 받은 토큰은 아래와 같이 검증 API로 토큰이 유효한지 확인해 볼 수 있습니다.
No. | 기능 |
1 | 토큰을 request data에 담도록 블록을 구성합니다. |
2 | Fetch와 Get HashMap Variable 블록을 활용해 request data에서 토큰 정보를 추출합니다. |
3 | 추출한 토큰을 변수에 담아 Jwt token Verify 블록으로 검증을 진행합니다. |
4 | 입력한 토큰이 검증을 통과할 경우 토큰 정보가 반환됩니다. |
5 | 토큰을 잘못 입력하거나 입력하지 않은 경우 ‘Unsupported input’ 예외 메시지가 반환됩니다. |
6 | 유효 기간이 만료된 토큰을 입력한 경우 ‘The token expired’ 예외 메시지가 반환됩니다. |