컴퓨터 프로그래밍/CS
[CS] ACCESS 토큰과 REFRESH 토큰
한33
2024. 10. 23. 01:26
💡 Refresh 토큰이 뭐에요 Access 토큰과 비교해서 알아봅시다.
구분 | 액세스 토큰 | 리프레시 토큰 |
역할 | API 호출 시 인증 | 액세스 토큰 재발급 |
수명 | 짧음 ( 몇 분 ~ 몇 시간 ) | 김 ( 며칠 ~ 수개월 ) |
사용 위치 | 모든 API 요청에 사용 | 만료된 액세스 토큰 갱신 시 사용 |
저장 위치 | 브라우저 메모리, 쿠키 등 | 쿠키, 로컬 스토리지 또는 서버 |
만료 시 처리 | 리프레시 토큰으로 재발급 | 만료 시 재로그인 필요 |
이 두 가지를 함께 사용하면 보안과 편의성을 모두 확보할 수 있다.
리프레시 토큰을 통해 자주 로그인하지 않아도 되면서도, 액세스 토큰의 짧은 수명으로 보안을 강화할 수 있다.
💡 어떤 구조로 이 두 가지를 함께 사용할 수 있을까?
💡 Access 토큰과 Refresh 토큰을 조합할 때의 주의사항이 뭘까?
- 리프레시 토큰 재사용 방지:
- 한 번 사용된 리프레시 토큰은 즉시 폐기해 재사용 공격을 방지한.
- 토큰 롤링(Token Rotation):
- 리프레시 토큰 사용 시 새로운 리프레시 토큰과 액세스 토큰을 동시에 발급해 기존 리프레시 토큰을 무효화하는 전략을 사용한다.
- 로그아웃 처리:
- 로그아웃 시 리프레시 토큰을 DB에서 삭제해 이후 사용을 차단해야 한다.
- 블랙리스트 관리:
- 탈취된 리프레시 토큰은 블랙리스트에 등록해 더 이상 사용되지 않도록 해야 한다.
- 자동 재발급 처리:
- 액세스 토큰 만료 시 사용자가 로그아웃되지 않도록 백그라운드에서 리프레시 토큰으로 자동 재발급한다.
- 만료 메시지 제공:
- 리프레시 토큰도 만료된 경우, 로그인 페이지로 리디렉션하고 적절한 메시지를 제공해야 한다.