JWT 가 탈취될 경우가 발생하므로 다중 토큰을 사용하게 된다
다중 토큰 : Refresh 토큰과 생명 주기
- 자주 사용되는 토큰의 생명주기는 짧게(약 10분),⇒ 생명주기가 짧으면 만료시 매번 로그인을 진행하는 문제가 발생, 생명주기가 긴 Refresh도 함께 발급한다.)
- 이 토큰이 만료되었을 때 함께 받은 Refresh 토큰(24시간 이상)으로 토큰을 재발급.
1. 로그인 성공시 생명주기와 활용도가 다른 토큰 2개 발급 : Access/Refresh
Access 토큰 :
권한이 필요한 모든 요청 헤더에 사용될 JWT로 탈취 위험을 낮추기 위해 약 10분 정도의 짧은 생명주기를 가진다.
Refresh 토큰 :
Access 토큰이 만료되었을 때 재발급 받기 위한 용도로만 사용되며 약 24시간 이상의 긴 생명주기를 가진다.
2. 권한이 필요한 모든 요청 : Access 토큰을 통해 요청
Access 토큰만 사용하여 요청하기 때문에 Refresh 토큰은 호출 및 전송을 빈도가 낮음.
3. 권한이 알맞다는 가정하에 2가지 상황 : 데이터 응답, 토큰 만료 응답
4. 토큰이 만료된 경우 Refresh 토큰으로 Access 토큰 발급
Access 토큰이 만료되었다는 요청이 돌아왔을 경우 프론트엔드 로직에 의해 “1”에서 발급 받은 Refresh 토큰을 가지고 서버의 특정 경로(Refresh 토큰을 받는 경로)에 요청을 보내어 Access 토큰을 재발급 받는다.
5. 서버측에서는 Refresh 토큰을 검증 후 Access 토큰을 새로 발급한다.
'기타' 카테고리의 다른 글
COOKIE SESSION TOKEN (0) | 2024.08.14 |
---|---|
API 기초 (0) | 2024.08.04 |