JWT, Access Token, 그리고 Refresh Token은 웹과 모바일 애플리케이션에서 사용자 인증과 권한 부여를 위해 널리 사용되는 토큰 기반 인증 방식의 핵심 요소입니다.
JWT란?
JSON Web Token (JWT)는 사용자의 신원 정보를 JSON 객체로 안전하게 전송하기 위한 개방형 표준 입니다.
이 정보는 디지털 서명되어 있어 검증하고 신뢰할 수 있습니다.
구조
JWT는 세 부분으로 나뉩니다
Header(헤더), Payload(페이로드), 그리고 Signature(서명).
헤더
는 토큰의 타입과 해싱 알고리즘 정보를 담고, 페이로드
는 사용자 신원 정보 및 클레임(claims)을 담고, 서명
은 토큰이 조작되지 않았음을 보증합니다.
사용
JWT는 일반적으로 사용자가 로그인한 후 서버에 의해 생성되어 사용자에게 반환됩니다.
사용자는 이후 모든 요청에 JWT를 포함하여 서버에 전송하고, 서버는 해당 토큰을 검증하여 사용자를 인증합니다.
Access Token이란?
Access Token은 인증된 사용자가 서버의 특정 자원에 접근할 수 있는 권한을 부여받는데 사용되는 자격 증명입니다.
주로 JWT 형태로 발급됩니다.
유효 기간
Access Token은 짧은 유효 기간을 가지고 있어, 토큰이 노출되더라도 보안 위험을 최소화합니다.
사용
사용자가 시스템에 로그인하면 서버는 Access Token을 발급하고, 사용자는 이 토큰을 사용하여 API 요청과 같은 보안이 필요한 작업을 수행할 수 있습니다.
Refresh Token이란?
Refresh Token은 Access Token을 새로 발급받기 위한 토큰으로, Access Token보다 훨씬 긴 유효 기간을 가집니다.
목적
Access Token이 만료되었을 때 사용자가 다시 로그인하지 않고도 새로운 Access Token을 안전하게 받을 수 있도록 하는 것입니다.
사용
사용자는 Refresh Token을 이용하여 새 Access Token을 요청하고, 서버는 Refresh Token을 검증한 후 새 Access Token을 발급합니다.