안녕하세요!
프뚜(프로그래머 뚜)입니다!
[개발 환경]
- 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 데이터 확인은
를 참조하시면 됩니다.
궁금하신 부분 또는 문제가 생긴 부분에 대해서 댓글 남겨주시면 빠르고 정확한 답변드리겠습니다.
'프로그램 > JAVA' 카테고리의 다른 글
[FFMPEG] Windows 10에서 동영상 화질, 확장자 등 변경하기 (JAVA) (3) | 2022.08.24 |
---|---|
[JWT] 토큰 인증 및 payload 확인 (5) | 2021.11.24 |
[Lombok] 롬복 설치 및 STS(Eclipse) 적용 (0) | 2021.07.19 |
[ngrok] 로컬 네트워크의 터널 열기(로컬 PC 개발 환경 구축) (0) | 2021.07.16 |
[Java] 변수의 타입 종류 및 대소문자의 차이 (1) | 2021.04.24 |