오늘은 프로젝트가 끝나고 다시 학습주차로 넘어온 날이었다
새로운 강의가 지급되었지만
저번에 지급해주셨던 강의를 다 듣지 못한 부분이 있어서
잔여 강의들을 들으면서 하루를 보냈다.
오늘은 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를 제공할 수 있겠다는 생각이 들었고
실제로 코드로 적용해보고 싶다는 생각이 들었다.
'Knowledge of Dev' 카테고리의 다른 글
240621 QueryDSL 기본 조회 문법 (0) | 2024.06.21 |
---|---|
240620 Why QueryDSL? (0) | 2024.06.20 |
RBAC(Role-Based Access Control)와 ABAC(Atrribute-Based Access Control) (0) | 2024.06.08 |
SpringSecurity 용어 정리 및 흐름 (0) | 2024.06.06 |
AOP(Aspect Oriented Programming) (0) | 2024.06.05 |