• 리프레시 토큰(Refresh Token)이란?

    • 리프레시토큰(rt)은 액세스토큰(at)이 만료되었을 때 새로운 at를 발급받기 위해 사용되는 토큰

    Untitled

    • 일반적으로 at는 짧은 수명을 가지고 있으며, rt는 더 긴 수명을 가지며, DB에 저장
    • 사용자는 rt를 사용하여 만료된 at를 새롭게 갱신(재발급)
  • rt 사용 이유

    • 보안 강화
      • rt를 redis 또는 rdb에 담음으로서 토큰 철회(Revocation) 관리가 가능
    • 사용자 경험 개선
      • 사용자가 로그인 상태를 유지하는 동안 백그라운드에서 자동으로 at를 갱신할 수 있으므로, 사용자는 자주 로그인을 할 필요가 없음
  • Backend

    • 로그인시 at와 rt를 함께 발급
    • at가 만료되면, rt를 사용하여 at를 발급
    • rt까지 만료되거나 유효하지 않은 경우, 사용자는 다시 로그인
  • Frontend

    • 로그인 시 at와 rt를 로컬 스토리지에 저장
    • 각 요청마다 at를 사용하여 요청
    • at 토큰이 만료된 경우 rt를 사용하여 새로운 at를 발급
    • rt까지 유효하지 않을경우, 사용자를 로그인 페이지로 리다이렉트
  • redis 설치 및 사용

    • redis에 키:값 으로 필요 데이터 저장
    • 레디스 실행
      • docker run -d --name redis -p 6379:6379 redis
    • 레디스 접속
      • docker exec -it 컨테이너ID redis-cli
    • 레디스 DB 선택
      • select 0(디비번호)
    • key값 확인
      • keys *