Refresh Token은 액세스 토큰의 수명을 연장하기 위해 사용되는 토큰입니다. 액세스 토큰은 보통 짧은 수명을 가지고 있어서 만료되면 새로 발급받아야 합니다. 그러나 사용자가 다시 로그인하지 않고도 새로운 액세스 토큰을 발급받을 수 있게 하는 방법이 Refresh Token입니다.
사용자 로그인
사용자가 로그인하면 서버는 액세스 토큰과 Refresh Token을 함께 발급합니다.
액세스 토큰 사용
사용자는 리소스 서버에 요청을 보낼 때 액세스 토큰을 사용합니다. 이 토큰은 짧은 수명을 가집니다.
액세스 토큰 만료
액세스 토큰이 만료되면, 클라이언트는 서버에 Refresh Token을 보내서 새로운 액세스 토큰을 요청합니다.
새로운 액세스 토큰 발급
서버는 Refresh Token을 검증하고, 유효하다면 새로운 액세스 토큰을 발급합니다. 필요시 새로운 Refresh Token도 함께 발급할 수 있습니다.
저장 위치
Refresh Token은 액세스 토큰보다 더 민감한 정보이므로, 안전하게 저장되어야 합니다. 보통 클라이언트의 로컬 스토리지나 쿠키에 저장합니다.
유효 기간
Refresh Token은 긴 수명을 가질 수 있지만, 영구적으로 유효하지 않도록 제한하는 것이 좋습니다.
재발급 시 관리
Refresh Token을 사용할 때마다 새로운 Refresh Token을 발급하고, 이전 토큰을 무효화하는 방식을 사용하면 보안이 강화됩니다.
누출 방지
Refresh Token이 누출되면 재발급 기능을 통해 지속적인 액세스가 가능해질 수 있으므로, Refresh Token의 유출을 방지하는 것이 중요합니다.
과제에서 로그인 기능을 담당하면서 Refresh Token 에 대해서 중요성을 이해했다. 이제 코드의 적용해봐야겠다.