[JWT] 리프레쉬 토큰 - 엑세스 토큰

엑세스 토큰

  • 클라이언트가 리소스 서버의 보호된 리소스에 접근할 수 있도록 하는 짧은 유효 기간을 가진 토큰이다.

리프레시 토큰

  • 엑세스 토큰이 만료된 경우 새로운 엑세스 토큰을 발급받기 위해 사용되는 토큰
  • 일반적으로 엑세스 토큰보다 긴 유효기간을 가진다.

OAUTH2 에서의 토큰 인증방식

  1. 토큰의 생성
    1. 사용자가 자격 증명으로 인증 서버에서 인증을 마치면
    1. 서버는 2가지의 토큰을 발급한다
      1. 엑세스 토큰
        1. 짧은 수명
        1. 보호된 리소스에 접근하는 데 사용된다.
      1. 리프레시 토큰
        1. 긴 수명
        1. 엑세스 토큰을 얻는데 사용
  1. 엑세스 토큰의 사용
    1. 클라이언트는 엑세스 토큰을 리소스 서버에 제공
    1. 보호된 데이터에 접근
    1. 리소스 서버는 엑세스 토큰 검증
      1. 유효
        1. 요청을 처리
      1. 유효X
        1. 401 인가되지 않은 에러 떨굼
  1. 엑세스 토큰의 만료시
    1. 엑세스 토큰이 만료시 보호된 리소스에 접근 불가

    리프레시 토큰 사용

    1. 사용자가 다시 인증 과정을 거치지 않도록
      1. 클라이언트는 리프레시 토큰을 사용해 인증 서버로부터 새로운 엑세스 토큰을 얻을 수 있음
    1. 새로운 엑세스 토큰 발급
      1. 인증 서버는 리프레시 토큰을 검증하고
        1. 유효시
          1. 새로운 엑세스 토큰 ( 또는 새로운 리프레시 토큰) 발급

지속 접근가능

  • 클라이언트 애플리케이션은 새로운 엑세스 토큰을 받는다.
  • 사용자가 다시 인증을 받지 않고 리소스 서버에 계속 접근함.

리프레시 과정은 언제까지 수행되는가?

  1. 리프레시 토큰 자체가 만료되는 경우
  1. 사용자가 로그아웃 하는 경우
  1. 사용자의 보안상의 문제가 있는 경우
    1. 사용자의 고유한 휴대폰번호 변경 등의 동작이 수행되는 경우
    1. 자동 로그인 관련 서비스와 연관 있을거같다
  1. 회원관련 서비스의 정책의 변경관련

참고

What is the purpose of a refresh token?
A look at refresh tokens in authentication flows – when to use them, security risks to look out for, and best practices for implementation.
https://stytch.com/blog/what-are-refresh-tokens/

Uploaded by N2T