인프런 커뮤니티 질문&답변

JoonHo Kim님의 프로필 이미지
JoonHo Kim

작성한 질문수

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

소셜 로그인 (6) - 회원 가입 및 JWT 반환

createJwtTokenDto 형태 질문

해결된 질문

작성

·

275

0

JWT 생성시 Header.Payload.Signature 형태로 생성 후 리턴하지는 않나요?

return JwtTokenDto.builder()
        .grantType(GrantType.BEARER.getType())
        .accessToken(accessToken)
        .accessTokenExpireTime(accessTokenExpireTime)
        .refreshToken(refreshToken)
        .refreshTokenExpireTime(refreshTokenExpireTime)
        .build();

답변 1

0

구파고님의 프로필 이미지
구파고
지식공유자

안녕하세요 생성한 access token이나 refresh token을보시면 점이 2개가있을텐데 각각의 토큰이 Header.Payload.Signature 구조로 이루어지신거를 보실수 있을겁니다!

해당토큰을 base64로 디코딩하면 Header.Payload.Signature 의 값도 보실수 있으실겁니다.

JoonHo Kim님의 프로필 이미지
JoonHo Kim
질문자

Jwts 라이브러리를 사용하여 Header.Payload.Signature 구조로 토큰을 만들고 암호화까지 해주나보는군요.
아래 .claim 이 Payloa에 해당하고 .sighWith 부분이 Signature에 해당하나보네요

String accessToken = Jwts.builder()
        .setSubject(TokenType.ACCESS.name())
        .setIssuedAt(new Date())
        .setExpiration(expirationTime)
        .claim("memberId", memberId)    //
        .claim("role", role)            // role
        .signWith(SignatureAlgorithm.HS512, tokenSecret.getBytes(StandardCharsets.UTF_8))
        .setHeaderParam("type", "JWT")
        .compact();
구파고님의 프로필 이미지
구파고
지식공유자

넵 저 라이브러리와 서버에서 가지고있는 토큰시크릿키로 jwt를 만들어줍니다.

JoonHo Kim님의 프로필 이미지
JoonHo Kim

작성한 질문수

질문하기