Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 알기쉬운 알고리즘
- ㅅ
- list 컬렉션
- 혼자 공부하는 C언어
- R
- coding test
- 메모리구조
- datastructure
- Graph
- insertion sort
- s
- JSON
- stream
- Serialization
- 이것이 자바다
- C 언어 코딩 도장
- 이스케이프 문자
- buffer
- Algorithm
- Stack
- C programming
- Selection Sorting
- 윤성우의 열혈 자료구조
- 윤성우 열혈자료구조
Archives
- Today
- Total
Engineering Note
[Server] Access Token과 Refresh Token을 사용하는 이유 본문
1. 개요
서비스에서 보안이 필요한 API를 호출할 때마다 로그인을 요구할 수는 없습니다. 이를 해결하기 위해 Token 기반 인증 방식을 사용하며, ㅂ안과 사용자 편의성을 모두 잡기 위해 두 종류의 토큰을 조합하여 운용합니다.
2. Access Token: 리소스 접근을 위한 통행증
- 역할: 인증된 사용자임을 증명하는 토큰입니다.
- 작동 방식: 클라이언트는 API 요청 시 HTTP 헤더(Authorization)에 이 토큰을 담아 보냅니다.
- 보안 전략: 토큰이 네트워크를 통해 자주 노출되므로, 탈취 시 피해를 최소화하기 위해 15분~1시간 정도로 짧은 유효기간을 설정합니다.
3. Refresh Token: 로그인 유지를 위한 열쇠
Access Token의 짧은 유효기간 때문에 사용자가 매번 다시 로그인해야 한다면 사용자 경험(UX)이 매우 나빠집니다. 이를 보완하기 위해 Refresh Token을 도입합니다.
- 역할: Access Token이 만료되었을 때, 이를 새로 발급받기 위한 인증 수단입니다.
- 유효기간: 보통 2주~한 달 정도로 길게 설정합니다.
- 특징:
- Access Token이 만료되면 클라이언트는 Refresh Token을 서버로 보내 새 Access Token을 요청합니다.
- 이 과정은 백그라운드에서 조용히 일어나므로 사용자는 로그아웃되지 않고 서비스를 계속 이용할 수 있습니다.
4. 보안 관리 (Token Management)
Refresh Token은 유효기간이 길기 때문에 탈취될 경우 위험할 수 있습니다. 이를 방어하기 위한 실무적인 방법은 다음과 같습니다.
- 서버측 저장: Refresh Token을 DB에 저장하여 관리합니다.
- 무효화 처리: 사용자가 로그아웃하거나 보안 침해가 의심될 경우, 서버 DB에서 해당 Refresh Token을 삭제하여 접근을 즉시 차단합니다.
'Server' 카테고리의 다른 글
| [Server] GCP 인스턴스 만들고 배포하기 + githubaction(무료 크레딧 사용) (0) | 2025.12.21 |
|---|---|
| [Spring] OncePerRequestFilter (0) | 2025.12.21 |
| [JPA] em.flush(); (0) | 2025.12.15 |
| [Spring] Spring Security 적용하고 테스트 하기 (0) | 2025.12.10 |
| [Server] Pageable과 Page<E> 타입 (0) | 2025.10.15 |
Comments