JWT 토큰의 단점, 해결방안

단점

해결방안

JWT Access / Refresh Token 인증 플로우

인증 클라이언트 서버
1 로그인 요청
2 DB에서 ID와 비밀번호 대조 후 일치여부 확인
3 일치 시 암호화된 토큰 생성
4 응답으로 Access Token / Refresh Token 반환
5 클라이언트에 토큰 저장
인가
1 API 요청 시 헤더에 Access Token을 포함시켜 요청
2 토큰을 복호화하여 유효성 검증
3 유효성 확인 중 Access Token이 만료가 되지 않음
4 응답을 받음 검증 완료 시 API 로직 처리 후 응답
재발급
1 API 요청 시 헤더에 Access Token을 포함시켜 요청
2 토큰 유효성 검증
3 유효성 확인 중 Access Token이 만료됨
4 응답으로 Access Token이 만료되었음을 알림
5 Refresh Token을 헤더에 포함시켜 Access Token 재발급 요청
6 Refresh Token의 유효성 검증
7 새로운 Access Token을 응답으로 반환하여 발급
8 새로운 Access Token 저장
1.4.3. 인증

앞의 인증 플로우와 다른 점은 인증 완료 시 Access Token과 함께 Refresh Token을 발급

1.4.4. 인가와 토큰 재발급

인가 중 Access Token이 만료되었을 때 클라이언트에 만료되었음을 응답으로 보냄
클라이언트는 만료되었음을 확인하고 Refresh Token을 헤더에 실어서 Access Token의 재발급 요청
서버는 마찬가지로 Refresh Token의 유효성을 검증한 후 Access Token을 재발급
재발급된 Access Token으로 API 요청

인증

인가와 토큰 재발급