Spring에서 JWT 생성

song yuheon·2023년 8월 29일
0

Spring

목록 보기
17/93
post-thumbnail

JWT 정의


  • JWT란
    JWT는 JSON 포맷을 이용하여 사용자의 속성을 저장하는 Claim 기반의 Web Token이다. 이는 토큰의 한 종류로 분류된다. 주로 쿠키 저장소에 저장되어 사용된다.

JWT는 주로 웹 애플리케이션에서 인증 및 권한 부여 메커니즘으로 사용된다. 서버와 클라이언트 간의 상태를 유지하지 않는 RESTful 서비스에서 특히 유용하다.


1. 함수 구조

public String createToken(String username, UserRoleEnum role) {...}

createToken 함수는 usernamerole을 매개변수로 받아 JWT를 반환한다.

2. 현재 시간 할당

Date date = new Date();

date 객체는 현재 날짜와 시간을 나타낸다.

3. 빌더 패턴 적용

Jwts.builder()

JWT 생성은 Jwts.builder()를 통해 시작된다.

4. 주체 지정

.setSubject(username)

JWT의 주체는 username으로 지정된다.

5. 권한 클레임 지정

.claim(AUTHORIZATION_KEY, role)

JWT에는 AUTHORIZATION_KEY를 통해 권한 정보가 추가된다. 여기서 권한은 role로 지정된다.

6. 만료 시간 설정

.setExpiration(new Date(date.getTime() + TOKEN_TIME))

토큰의 만료 시간은 date.getTime() + TOKEN_TIME이다.

7. 발급 시간 할당

.setIssuedAt(date)

토큰의 발급 시간은 date이다.

8. JWT 서명 과정

.signWith(key, signatureAlgorithm)

JWT는 keysignatureAlgorithm을 통해 서명된다.

9. JWT 문자열 반환

.compact();

모든 설정 후, JWT는 압축된 문자열 형태로 반환된다.


profile
backend_Devloper

0개의 댓글