기술 정리 & CS/인증, 인가

[Authentication] JWT Token - Access Token과 Refresh Token

yubi5050 2022. 9. 5. 15:57

이전 글에서는 JWT 가 무엇인지, 어떤 구조와 특징을 가지고 있는지 알아보았다.

https://yubi5050.tistory.com/67

 

[Authentication] JWT Token , CSRF Token

지난 번엔 Token 시스템에 대한 이해, 장점, 작동 방식 등에 대해 이해해 보았다. 이번 글에서는 Token 시스템에서 주로 활용되는 JWT(Json Web Token), CSRF(Cross Site Request Forgery)에 대해 내용을 작성해..

yubi5050.tistory.com

 

이번에는 JWT의 Access Token과 Refresh Token에 대해 좀더 알아보고 왜 필요한지에 대해 적어보았다.

 

Access Token, Refresh Token 이란?

Access Token : 클라이언트 본인을 서버에서 인증하는 역할 (expiration time 짧게)
Refresh Token : 유효 기간이 지나면 새로운 Access Token 생성 (expiration time 길게)

 

Access Token과 Refresh Token 필요 이유

기본적으로 사용자는 Access Token, Refresh Token을 둘다 서버에 전송하여 인증 받는 형태이고, 아래와 같은 상황에 대비할 수 있다.

 

Case 1) Access Token 만료시

- 만료 시간이 긴 refresh token으로 유효시간 연장하거나 access token 재발급

 

Case 2) Access Token을 탈취시

- 공격자가 Access Token을 탈취하더라도 Access Token의 설정해둔 짧은 유효기간이 지나면 사용 불가능

 

Case 3)  Refresh Token을 탈취시

- refresh token을 탈취시 서버의 refresh token 검증에 대한 로직 필요

- 일반적으로 서버측에서 { Access Token : Refresh Token }으로 관리

- refresh token 탈취시, db(nosql)에 access token : refresh token에 대해 저장해두고 체크하여 다름을 확인후 둘다 만료

 

참고 문헌

https://velog.io/@park2348190/JWT%EC%97%90%EC%84%9C-Refresh-Token%EC%9D%80-%EC%99%9C-%ED%95%84%EC%9A%94%ED%95%9C%EA%B0%80

 

JWT에서 Refresh Token은 왜 필요한가?

개인 프로젝트 중 JWT를 사용하는 SimpleTodoList 에서는 회원가입 후 로그인 시 아래처럼 JWT를 발급해준다.이 토큰은 애플리케이션 전반에서 사용자를 인증하는데 사용된다. 기존의 세션과는 달리

velog.io

 

링크

 

refresh token 도입기

❗ SSR 상에서 refresh token을 도입하면서 느낀 것들을 작성한 글입니다. ❗ SSR에서 로그인이 어떻게 이루어지는지 궁금하시면 여기를 참고해주세요! 도입 계기 - 2시간이 지나면 로그인이 풀린다!

tecoble.techcourse.co.kr