JWT의 검증 기능은 인증된 사용자가 애플리케이션의 리소스에 접근할 때마다 request의 header에 포함된 JWT를 검증할 때 사용된다.
verifySignature()
메서드는 JWT에 포함되어 있는 Signature를 검증해 JWT의 위/변조 여부를 확인한다.
jjwt 라이브러리는 Secret Key를 이용해 내부적으로 Signature를 검증한 후 검증에 성공하면 JWT를 파싱해서 Claims를 얻을 수 있다.
🧐 파싱이 뭐여
많은 정보 중에서 원하는 데이터 조각들을 뽑아서 하나의 데이터로 만드는 것
서명에 사용된 Secret Key를 설정하는 메서드
JWT를 파싱해서 Claims를 얻는 메서드
해당 메서드는 검증을 위한 메서드 임으로 리턴값이 별도로 필요하지 않다!
parseClaimsJws() 메서드에 사용된 파라미터jws
는 Signature를 포함한 JWT라는 뜻
💡JwtTokenizer클래스에 구현한 verifySignature()
메서드가 잘 실행되는지 테스트
Exception의 발생 여부만 확인한다.
💡JWT 생성 시 지정된 만료일시가 지나면 정말 만료가 되는지에 대한 테스트
생성되는 JWT의 만료 시간를 아주 짧게 준 후 verifySignature()
검증을 진행하고, 만료 시간이 지난 후 두번째 verifySignature()
검증을 진행했을 때 ExpiredJwtException
이 발생하면 정상적으로 JWT가 만료되었다고 볼 수 있다.
💡Access Token 생성 메서드
🧐 차근차근 정리해보니 조금 이해가 될 것 같기도