쌓고 쌓다

AccessToken, RefreshToken? 본문

Git & CS

AccessToken, RefreshToken?

승민아 2024. 1. 11. 17:36

 

소셜로그인이든, JWT든 oAuth든 뭘 도입하려니

액세스 토큰과 리프레쉬 토큰에 대한 이해가 필수였다.

 

AccessToken

목적 : 정보를 쓰거나 읽을 때 사용되는 권한 확인을 위해 사용한다.

 

클라이언트는 처음 인증을 정상적으로 받았을 때

AccessToken과 RefreshToken을 받는데 서버에 요청할때 권한을 인증하기위해

AccessToken을 사용하는 것이다.

 

이 액세스 토큰이 탈취 당하여 해커가 권한을 마음대로 사용할 수 있으므로

우리는 이 토큰의 유효기간을 짧게 지정한다.

 

RefreshToken

그럼 RefreshToken은 어디다 쓰냐?

AccessToken는 유효기간이 짧다.

액세스 토큰을 새로 발급 받기 위해 RefreshToken을 사용하는 것이다.

리프레쉬 토큰은 액세스 토큰보다 유효기간이 길게 지정되어 있다.

 

RefreshToken도 탈취 당할텐데 RefreshToken이랑 AccessToken을 왜 구분할까?

https://okky.kr/questions/1007579

 

OKKY - 리프레쉬 토큰이 필요한 이유는 무엇인가요?

보통 "짧은 만료시간을 가지는 엑세스 토큰이 만료될 경우, 새로운 엑세스 토큰을 발급 받기위해 리프레쉬 토큰을 사용한다."라고 설명하는 것 같습니다.하지만 리프레쉬 토큰 자체가 탈취 당할

okky.kr

 

간단히 한번 발급시 바뀌지 않는 RefreshToken으로 서버측에서 해킹된 액세스 토큰에 대해 방어 행동을 취할 수 있는 것이다.

그런데 RefreshToken 또한 탈취된다면 다양한 RefreshToken 전략이 있으니 참고...!

 

액세스 토큰이 만료되었다면 리프레쉬 토큰으로 액세스 토큰을 새로 발급 받아 사용자는 계속 로그인된 상태로 느낄 수 있다.

 

 

+ https://okky.kr/questions/1409503

 

이제 AccessToken과 RefreshToken을 어디에 어떻게 저장하여 사용하고 관리할지 알아보자.

Comments