240619 Refresh Token
오늘은 프로젝트가 끝나고 다시 학습주차로 넘어온 날이었다
새로운 강의가 지급되었지만
저번에 지급해주셨던 강의를 다 듣지 못한 부분이 있어서
잔여 강의들을 들으면서 하루를 보냈다.
오늘은 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를 제공할 수 있겠다는 생각이 들었고
실제로 코드로 적용해보고 싶다는 생각이 들었다.