JWT 유효성 검증 및 parseClaimsJws(token)

song yuheon·2023년 8월 29일
0

Spring

목록 보기
18/93
post-thumbnail
post-custom-banner

JWT 검증 코드



  1. 함수 정의:

    public boolean validateToken(String token) {...}

    validateToken 메서드는 입력된 token의 유효성을 검사하고 그 결과를 boolean 타입으로 반환한다.

  2. 토큰 검증 절차:

    Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJws(token);

    Jwts.parserBuilder()를 사용하여 토큰의 유효성 검사를 진행한다. 이 과정에서 key를 서명 키로 설정한다. 그 후, parseClaimsJws(token) 메서드로 토큰의 유효성을 검사한다.

  3. 예외 처리:
    validateToken 메서드는 여러 예외 사항을 고려하여 구현되었다.

    • 잘못된 서명: "Invalid JWT signature, 유효하지 않는 JWT 서명 입니다."
    • 토큰 만료: "Expired JWT token, 만료된 JWT token 입니다."
    • 지원되지 않는 토큰 형식: "Unsupported JWT token, 지원되지 않는 JWT 토큰 입니다."
    • 빈 토큰: "JWT claims is empty, 잘못된 JWT 토큰 입니다."
  4. 반환 값:
    토큰의 유효성 검사가 성공적으로 이루어지면 true가 반환되고, 그렇지 않을 경우 false가 반환된다.


parseClaimsJws(token)


  1. JWT
    JWT는 헤더+ 페이로드 + 서명의 세 부분으로 구성된다.

    • 헤더: 암호화 알고리즘 및 토큰 타입 정보를 담고 있다.
    • 페이로드: 사용자 정보, 토큰의 만료 시간 등의 claim 정보가 포함되어 있다.
    • 서명: 헤더와 페이로드를 특정 암호화 알고리즘으로 서명한 결과이다.
  2. 메서드의 역할:
    parseClaimsJws(token)는 주어진 JWT 토큰을 파싱하여 위의 세 부분으로 분리한다. 또한 토큰의 서명을 검증하여 데이터의 무결성을 확인한다.

  3. 유효성 검증:
    이 메서드는 토큰의 서명 무결성 외에도 토큰의 만료 시간을 검사한다.

  4. 반환 값:
    parseClaimsJws(token) 메서드는 파싱 결과로 Jws<Claims> 객체를 반환한다. 이 객체를 통해 JWT의 헤더, 페이로드, 서명 등의 정보에 접근할 수 있다.

  5. 예외 처리:
    이 메서드는 잘못된 서명, 만료된 토큰, 지원되지 않는 토큰 형식 등 다양한 예외 상황을 처리할 수 있다.


profile
backend_Devloper
post-custom-banner

0개의 댓글