Skip to content

Commit

Permalink
feat: accessToken Validate로직 추가 #8
Browse files Browse the repository at this point in the history
  • Loading branch information
PgmJun committed Jan 24, 2024
1 parent 558a33c commit f274916
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
13 changes: 9 additions & 4 deletions src/main/java/com/nice/petudio/common/auth/jwt/JwtUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,20 @@ public Optional<Long> parseMemberId(String accessToken) {
return Optional.ofNullable(parseClaims(accessToken).get(JwtKey.MEMBER_ID.getKey(), Long.class));
}

private Claims parseClaims(String token) {
private Claims parseClaims(String accessToken) {
try {
validateAccessToken(accessToken);
return Jwts.parserBuilder().setSigningKey(secretKey).build()
.parseClaimsJws(token).getBody();
.parseClaimsJws(accessToken).getBody();
} catch (ExpiredJwtException exception) {
return exception.getClaims();
} catch (SignatureException exception) {
}
}

private void validateAccessToken(String accessToken) {
if (!validateToken(accessToken)) {
throw new UnAuthorizedException(ErrorCode.UNAUTHORIZED_JWT_EXCEPTION,
String.format("입력받은 JWT 토큰의 Signature가 잘못되었습니다. (TOKEN: %s)", token));
String.format("입력받은 JWT 토큰이 유효하지 않습니다. (ACCESS_TOKEN: %s)", accessToken));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ public enum ErrorCode {
BAD_REQUEST_EXCEPTION("V002", "잘못된 요청입니다."),
METHOD_NOT_ALLOWED_EXCEPTION("V003", "지원하지 않는 HTTP 메소드입니다."),
UNSUPPORTED_MEDIA_TYPE("V004", "허용하지 않는 미디어 타입입니다."),
INVALID_JWT_TOKEN_EXCEPTION("V005", "존재하지 않거나 잘못된 JWT 토큰 형식입니다."),
INVALID_JWT_TOKEN_EXCEPTION("V005", "존재하지 않거나 잘못된 JWT 토큰 형식입니다."), // JWT 토큰 값에 이상이 있을 경우
INVALID_OAUTH2_ACCESS_TOKEN_EXCEPTION("V006", "존재하지 않거나 잘못된 OAuth2 Access 토큰 입니다."),
NO_RESOURCE_FOUND_EXCEPTION("V007", "존재하지 않는 API 주소입니다."),

// UnAuthorized Exception
UNAUTHORIZED_JWT_EXCEPTION("U001", "JWT 토큰이 유효하지 않습니다. 다시 로그인 해주세요."),
UNAUTHORIZED_JWT_EXCEPTION("U001", "JWT 토큰이 유효하지 않습니다. 다시 로그인 해주세요."), // 인증에 실패했을 경우

// Forbidden Exception
FORBIDDEN_EXCEPTION("F001", "접근 권한이 존재하지 않습니다."),
Expand Down

0 comments on commit f274916

Please sign in to comment.