Knowledge of Dev

240619 Refresh Token

jwkane 2024. 6. 19. 23:33

오늘은 프로젝트가 끝나고 다시 학습주차로 넘어온 날이었다

 

새로운 강의가 지급되었지만

저번에 지급해주셨던 강의를 다 듣지 못한 부분이 있어서

잔여 강의들을 들으면서 하루를 보냈다.

 

오늘은 jwt흐름과 특히 Refresh Token에 대하여

전체적인 흐름을 배운점이 인상적이었다.

 

1. Refresh Token 없을 때

로그인과 JWT

1. 클라이언트 : 로그인 시도 / 서버 : 사용자 정보 기반 JWT 생성

 

2. 서버 : JWT 전달 / 클라이언트 : 토큰 저장

 

JWT 활용 (토큰 만료기간 남아 있을 시)

1. 클라이언트 : 요청 시 JWT 함께 요청 / 서버 : JWT 검증(만료 시간 확인)

 

2. 서버 : JWT가 검증 되면 정상 응답 아닐 시 에러 응답

 

 

JWT 활용 (토큰 만료 시)

 

1. 클라이언트 : 요청 시 JWT 함께 요청 / 서버 : JWT 검증(만료 시간 확인)

 

2. 서버 : 토큰 만료 응답

 

재 로그인을 통한 JWT 발급

1. 클라이언트 : 로그인 시도 / 서버 : 사용자 정보 기반 JWT 생성

 

2. 서버 : JWT 전달 / 클라이언트 : 토큰 저장

 

Refresh Token이 없다면

만료 시 마다 다시 로그인을 하여 재발급 받아야하는

이런 불편함이 생긴다.

 

다음은 Refresh Token이 있는 경우이다.

2. Refresh Token 있을 때

로그인과 JWT

1. 클라이언트 : 로그인 시도 / 서버 : 사용자 정보 기반 JWT 생성(Access, Refresh)

 

2. 서버 : JWT (Access, Refresh) 전달 / 클라이언트 : 토큰 저장(Access, Refresh)

 

JWT 활용 ( Access Token 만료 기간 남아 있을 시)

1. 클라이언트 : 요청 시 JWT 함께 요청 / 서버 : JWT 검증(만료 시간 확인)

 

2. 서버 : JWT가 검증 되면 정상 응답 아닐 시 에러 응답

 

 

JWT 활용 ( Access Token 만료 시)

 

1. 클라이언트 : 요청 시 JWT 함께 요청 / 서버 : Token 검증(만료 확인)

 

2. 서버 : 토큰 만료 응답

 

Refresh Token을 이용한 Access Token 재발급

 

1. 클라이언트 : Refresh Token과 함께 요청  / 서버 : Refresh Token 검증(만료 확인)

 

2. 서버 : 새로운 Access Token 지급

 

새로운 Access Token으로 요청

1. 클라이언트 : 요청 시 새로운 JWT 함께 요청 / 서버 : JWT 검증(만료 시간 확인)

 

2. 서버 : JWT가 검증 되면 정상 응답 아닐 시 에러 응답

 

 

오늘 배운 점

 

이렇게 Refresh Token의 필요성을 배웠다.

Refresh Token을 통해 유저에게 좋은 UX를 제공할 수 있겠다는 생각이 들었고

실제로 코드로 적용해보고 싶다는 생각이 들었다.