티스토리 뷰
Access Token
Access Token은 사용자의 인증이 완료된 후 해당 사용자를 인증하는 용도로 발급하는 토큰입니다.
Access Token에는 사용자인증의 필요한 모든 Secret 한 정보가 JWT형태로 들어있습니다.
만약 탈취를 당하게 된다면 서버는 탈취된 토큰인지 알지못해 피해가 커질수 있습니다.
그렇기 때문에 피해를 최소화 하기위해 만료시간을 최소화 해야합니다.
Refresh Token
Refresh Token은 Access Token을 발급받기 위한 목적으로 사용하는 토큰입니다.
Refresh Token은 사용자의 인증 정보를 검증하는데 사용되며, 이를 서버에서 관리합니다.
서버는 Refresh Token을 디코딩하여 사용자의 정보를 확인하고 사용자의 인증상태를 언제든지 서버에서 제어할수 있습니다.
처음에 로그인을 완료 했을 때 Access Token과 동시에 발급되는 Refresh Token은 긴유효기간을 가지면서
Access Token이 만료됐을 때 새로 발급해주는 열쇠가 됩니다.
직접 Access Token을 발급하지 않고, Refresh Token을 통해 Access Token을 발급하는 이유
토큰이 탈취당한 경우에 대비하여 피해를 최소화하기 위해서 입니다.
일상생활에서 흔히 사용하는 OTP처럼, 사용자의 인증 정보는 짧은 시간동안만 사용되어야합니다.
주기적으로 토큰을 재발급함으로써,
토큰이 유출되더라도 그 피해가 오랜 시간 동안 지속되는 것이 아니라,
짧은 기간 동안만 사용 가능하도록 제한하여 피해를 최소화할 수 있게 될 것입니다.
Access Token + Refresh Token 인증 과정
올바른 인증방식
개발을 진행하다보면, 어떤 기술이든 모든 상황에서 강점을 가지는 기술은 없다는 것을 알게됩니다.
그렇기 때문에 새로운 기술을 도입할 때는 현재 상황에 가장 알맞는 최적의 선택을 하는것이 중요합니다.
만약 프로젝트를 신속하게 구현해야 하거나 사용자의 요청에 대한 인증을 최소화하려는 목표가 있다면
Access Token만 사용
보안성을 중요하게 여기고 서버를 더욱 견고하게 구성해야한다면
Refresh Token의 사용을 고려할 것
'프로그래밍 기초 > CS' 카테고리의 다른 글
객체지향 프로그래밍 설계 5원칙이란? (0) | 2024.03.04 |
---|---|
동시성문제와 격리수준에 대해서 (0) | 2024.02.20 |
JWT란? (0) | 2024.02.14 |
쿠키(Cookie)와 세션(Session) (0) | 2024.02.13 |
JWT 사용자 인증 미들웨어 (0) | 2024.01.27 |