이번 수업에서는
JWT 토큰이 만료된 상황의 예시를 보여주고자 합니다
이를 위해 우선
로그인 과정 중에
수명이 짧은 JWT 토큰을 생성하고
이 JWTTokenGeneratorFilter
안에서 밀리초의
숫자를
30,000으로 줄입니다
이렇게 하면 토큰의 수명이
30초로 줄어듭니다
해당 변경 사항들을 이 빌드에 저장해두겠습니다
빌드가 완료된 후
UI 애플리케이션으로 가겠습니다
여기서 로그인 하고
로그인이 완료된 후
30초 기다려 주겠습니다
30초가 지나고 나면
UI 애플리케이션 속에서
오퍼레이션을 실행하려 하면 오류가 날 것입니다
JWT 토큰이 만료 되었기 때문입니다
이를 검증하기 위해서 JWTTokenValidatorFilter 속
catch 블록 안에
여기에 중단점을 두겠습니다
여기 이미 중단점이 있습니다
첫번째 중단점을 제거하겠습니다
이제 30초가 지났다고 생각되니
다시 UI 애플리케이션으로 돌아가 웹 애플리케이션 내에 있는
액션 중 아무거나 호출해 보도록 하겠습니다
오류를 볼 수 있도록
여기 개발자 콘솔을 열어보도록 하겠습니다
이 계정을 클릭한 후
여기 백엔드에서 예외를 받은 걸 볼 수 있습니다
해당 예외는 ExpiredJwtException로
이는 JWT 토큰이 만료되었음을 의미합니다
그렇기 때문에 프론트엔드 애플리케이션에게
예외를 보내고 있습니다
프론트엔드 애플리케이션에서는
예상했다시피 500 error을 발견 했습니다
이를 통해 JWT 토큰이 만료 되었음을
한번 더 확인할 수 있습니다
이제 토큰 만료의 변경 사항들을 뒤로감기 해보겠습니다
그러지 않으면 JWT 토큰은
늘 30초동안만 유효할 것입니다
이로 인해 우리는 JWT 토큰에 대한 모든걸 살펴봤습니다
이번 섹션을 마무리하기 전에
GitHub 리포지터리 내의 변경 사항들을 보여드리겠습니다
GitHub 리포지터리 내에는
여기 section9 안에
지금까지 논의한 모든 변경 사항을 업로드 해두었습니다
그리고 해당 섹션의 댓글창에서
JWT 토큰을 이용한 토큰 기반의
인증에 대해 이야기 나누었습니다
section9 클릭 하면
안에 Maven 프로젝트와
클라이언트 애플리케이션을 찾을 수 있습니다
클라이언트 애플리케이션 내에서는
아주 작은 변화만 조금씩 주었습니다
하나는 logincomponent.ts 안에
다른 하나는
interceptor 클래스 안에 있습니다
모든 UI와 백엔드 변경 사항들은 전부
이 폴더 안에 있습니다
질문 혹은 문제가 생긴다면
언제든지 본인의 코드를
해당 GitHub 리포지터리에 있는 코드와 비교해볼 수 있습니다
이제 JWT 토큰에 대해
아주 명확히 이해하셨길 바라며
수업을 통해 모두 조금씩 앞으로 나아가고 있는 것 같아 기쁩니다
여러분도 같은 마음이길 바라봅니다
휴식도 취하고 재밌는 일도 해본 후 다시 돌아오시면
다음 섹션에서 뵙겠습니다
감사합니다 수고하셨습니다