JWT 발급해보기
JWT 가 무엇인지는 이 글에 정리해두었으니 개념이 부족하다면 참고하자.
우선 스프링에서 JWT 를 쓰기 위해서는 JWT 라이브러리의 의존성을 추가해야한다.
build.gradle
// JWT
implementation 'io.jsonwebtoken:jjwt-api:0.12.0'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.0'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.0'
SecretKey 발급
아래와 같은 방법으로 SecretKey 를 발급할 수 있다.
하지만 실행할때마다 매번 바뀌기 때문에 한번 발급하고 출력하여 고정값으로 사용해야한다.
SecretKey 발급 로직만 추출해서 모듈화 하는것도 좋을것 같다.
SecretKey key = Jwts.SIG.HS256.key().build();
String strKey = Encoders.BASE64.encode(key.getEncoded());
log.info("secretKey = {}",strKey);
ㄴ Jwts.SIG.HS256.key().build()
SecretKey 를 생성한다.
ㄴ Encoders.BASE64.encode(key.getEncoded());
선택한 알고리즘으로 암호화된 SecretKey 를 BASE64로 인코딩한다.
SecretKey 가 위처럼 발급된걸 확인할 수 있다.
이 SecretKey 로 JWT 를 발급하므로 노출되지 않게 잘 관리하자.
JWT 발급
아래처럼 Jwt 빌더로 원하는 Claim 을 설정하면 위에서 발급한 SecretKey 로 JWT 를 발급한다.
Jwts.builder()
.subject(name)
.issuedAt(new Date())
.signWith(secretKey)
.compact());
위처럼 JWT가 잘 발급된것을 확인할 수 있다.
발급된 JWT를 검증하는 과정은 이 글을 참고하자.
'백엔드 > 연습' 카테고리의 다른 글
QueryDSL 적용하기: gradle-kotlin (0) | 2024.05.13 |
---|---|
포트원 API 사용해보기 (0) | 2024.04.04 |
plain-jar 파일 생성 방지 (0) | 2024.01.16 |
QueryDSL 적용하기: gradle-groovy (0) | 2023.09.25 |
H2 DB 사용해보기 (0) | 2023.09.24 |