프로그램/JAVA

[JWT] 토큰 환경 설정 및 생성

프뚜 2021. 11. 24. 10:05
728x90
반응형
SMALL

안녕하세요!

프뚜(프로그래머 뚜)입니다!

 

[개발 환경]

 - OS: windows 10 64bit

 - JAVA: 11

 - IDE: IntelliJ

 

JWT(Java Web Token) 환경 설정 및 생성하는 방법에 대해 포스팅하려고 합니다.

 

 

JWT Procedure은 아래와 같습니다.

 1. Client ->Server : Login(POST) 요청을 합니다.

 2. Server : Login 정보가 맞다면 CreateJWTToken을 생성합니다.

 3. Server -> Client : 클라이언트에 JWT를 전달합니다.

 4. Client ->Server : 서버에 데이터 요청합니다.(해더에 JWT토큰을 담아놓습니다.)

 5. Server : 클라이언트에서 보내준 JWT 유효성 검증을 합니다.

 6. Server : 요청 데이터에 대한 결과를 전송해줍니다.

 

 

JWT Structure

해더 : 토큰 타입, 해싱 알고리즘

페이로드 : 토큰에 담을 정보(클레임)

시그니처 : 비밀키 해싱 값

 

 

JWT 설정

gradle 프로젝트 -> build.gradle

 

maven 프로젝트 -> POM.xml

<dependency>
   <groupId>io.jsonwebtoken</groupId>
   <artifactId>jjwt</artifactId>
   <version>0.9.1</version>
</dependency>
<dependency>
   <groupId>javax.xml.bind</groupId>
   <artifactId>jaxb-api</artifactId>
   <version>2.3.1</version>
</dependency>

 

https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt/0.9.1

환경에 맞는 설정을 가져올 수 있습니다.

 

 

Controller

Login 요청이 정상적으로 되었다고 가정하에 userId를 넣고 createToken을 합니다.

 

 

Service

Global.EXPIRED_TIME에는 60 * 1000 * 60(한시간)으로 세팅 되어있습니다.

 

 

Front

정상적으로 토큰이 발생되었습니다.

이후 토큰을 헤더(Authorization)에 넣고 서버에 데이터 요청을 하면 됩니다.

 

 

정상적인 토큰인지 확인 후 payload 데이터 확인은

https://ssjeong.tistory.com/entry/JWT-%ED%86%A0%ED%81%B0-%EC%9D%B8%EC%A6%9D-%EB%B0%8F-payload-%ED%99%95%EC%9D%B8?category=981333 

를 참조하시면 됩니다.

 

 

궁금하신 부분 또는 문제가 생긴 부분에 대해서 댓글 남겨주시면 빠르고 정확한 답변드리겠습니다.

728x90
반응형
LIST