Refresh Token을 client에게 전달하는 방식도 있지만 여기서는 DB에서 관리하는 방식을 소개한다.
사용자가 인증된 상태를 유지하고, 특정 리소스에 접근하는 데 필요한 접근 토큰(Access Token)을 발급한다. 이 때, Access Token의 유효 기간이 만료되면 새로운 Access Token을 얻기 위해 Refresh Token이 사용되는 것이다.
액세스 토큰은 주로 리소스 서버에서 사용자 데이터에 접근하기 위해 사용되며, 리프레시 토큰은 액세스 토큰이 만료될 때마다 새로운 액세스 토큰을 얻기 위한 수단으로 사용된다.
따라서 리프레시 토큰이 노출되면 보안 문제가 발생할 수 있으므로 DB에 안전하게 저장되어야 한다.
사용자가 처음으로 인증을 하면 Access Token(클라이언트에게)과 함께 Refresh Token(DB에)을 발급
Access Token은 짧은 유효 기간(ex: 15분)을 갖는다.
만료된 Access Token 대신에 Refresh Token을 사용하여 새로운 Access Token을 얻는다.
Refresh Token은 Access Token보다 긴 유효 기간(ex: 7일)을 가지며, 사용자가 로그아웃하거나 장기간 동안 사용하지 않을 경우에만 만료된다.
Refresh Token을 사용하면 사용자는 로그인 상태를 지속할 수 있으며, 애플리케이션이 사용자의 로그인 상태를 유지하면서 Access Token을 갱신한다.