함수 정의:
public boolean validateToken(String token) {...}
validateToken
메서드는 입력된 token
의 유효성을 검사하고 그 결과를 boolean 타입으로 반환한다.
토큰 검증 절차:
Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJws(token);
Jwts.parserBuilder()
를 사용하여 토큰의 유효성 검사를 진행한다. 이 과정에서 key
를 서명 키로 설정한다. 그 후, parseClaimsJws(token)
메서드로 토큰의 유효성을 검사한다.
예외 처리:
validateToken
메서드는 여러 예외 사항을 고려하여 구현되었다.
반환 값:
토큰의 유효성 검사가 성공적으로 이루어지면 true
가 반환되고, 그렇지 않을 경우 false
가 반환된다.
JWT
JWT는 헤더+ 페이로드 + 서명의 세 부분으로 구성된다.
메서드의 역할:
parseClaimsJws(token)
는 주어진 JWT 토큰을 파싱하여 위의 세 부분으로 분리한다. 또한 토큰의 서명을 검증하여 데이터의 무결성을 확인한다.
유효성 검증:
이 메서드는 토큰의 서명 무결성 외에도 토큰의 만료 시간을 검사한다.
반환 값:
parseClaimsJws(token)
메서드는 파싱 결과로 Jws<Claims>
객체를 반환한다. 이 객체를 통해 JWT의 헤더, 페이로드, 서명 등의 정보에 접근할 수 있다.
예외 처리:
이 메서드는 잘못된 서명, 만료된 토큰, 지원되지 않는 토큰 형식 등 다양한 예외 상황을 처리할 수 있다.