JWT는 주로 웹 애플리케이션에서 인증 및 권한 부여 메커니즘으로 사용된다. 서버와 클라이언트 간의 상태를 유지하지 않는 RESTful 서비스에서 특히 유용하다.
public String createToken(String username, UserRoleEnum role) {...}
createToken
함수는 username
과 role
을 매개변수로 받아 JWT를 반환한다.
Date date = new Date();
date
객체는 현재 날짜와 시간을 나타낸다.
Jwts.builder()
JWT 생성은 Jwts.builder()
를 통해 시작된다.
.setSubject(username)
JWT의 주체는 username
으로 지정된다.
.claim(AUTHORIZATION_KEY, role)
JWT에는 AUTHORIZATION_KEY
를 통해 권한 정보가 추가된다. 여기서 권한은 role
로 지정된다.
.setExpiration(new Date(date.getTime() + TOKEN_TIME))
토큰의 만료 시간은 date.getTime() + TOKEN_TIME
이다.
.setIssuedAt(date)
토큰의 발급 시간은 date
이다.
.signWith(key, signatureAlgorithm)
JWT는 key
와 signatureAlgorithm
을 통해 서명된다.
.compact();
모든 설정 후, JWT는 압축된 문자열 형태로 반환된다.