private fun createToken(accountId: String, tokenType: String, tokenExpiredAt: Long) =
Jwts.builder()
.signWith(SignatureAlgorithm.HS256, securityProperties.secretKey)
.setSubject(accountId)
.setHeaderParam(JWT_TYPE, tokenType)
.setIssuedAt(Date())
.setExpiration(Date(System.currentTimeMillis() + tokenExpiredAt))
.compact()
private fun createAccessToken(accountId: String) =
createToken(accountId, JwtProperty.ACCESS, securityProperties.accessExp)
fun getToken(accountId: String) = TokenResponse(
accessToken = createAccessToken(accountId),
accessTokenExpiredAt = LocalDateTime.now().plusSeconds(securityProperties.accessExp)
)
jwt를 생성해주는 코드를 작성합니다.
secretkey와 만료 시간은 코드상에서 확인할 수 없게 설정 파일로 따로 관리합니다.
jwt:
access_exp: ${ACCESS_EXP}
refresh_exp: ${REFRESH_EXP}
secret_key: ${SECRET_KEY}
return jwtProvider.getToken(request.accountId)
기존 로그인 API에 성공했을경우 토큰을 발급하는 코드를 추가합니다.