1. Access Token
- 역할: API 요청 시 사용자 인증/인가 "확인" 용도로 사용
- 수명: 짧음 (보통 15~30분)
- 이유: 만약 토큰 탈취 당하면 위험하므로 빨리 만료되도록 설계
- 저장위치: 메모리
2. Refresh Token
- 역할: AccessToken 만료 되었을 시 새로운 AccessToken 발급 받기 위해 사용
- 수명: 길다 (보통 7일 ~ 30일)
- 이유: 평소 통신할 때는 사용하지 않고 오직 토큰 갱신할 때만 서버에 보냄
- 저장위치: HttpOnly 쿠키
3. 사용자 인증 흐름도
- 로그인 성공: 서버가 Access(30분짜리)와 Refresh(2주 짜리) token을 둘 다 제공
- 평상시: 클라이언트는 Access token만 헤더에 실어서 요청
- 만료: 30분이 지나 Access Token이 죽으면, 서버에 "유효하지 않은 토큰"임을 응답
- 갱신: 클라이언트는 이때 저장해둔 Refresh Token을 서버에 보냄
- 재발급: 서버는 Refresh Token이 유효한지 확인 후, 새로운 Access Token을 내려줌
- 결과: 사용자는 로그아웃되지 않고 계속 서비스 이용 가능
4. 요약 및 비교
| 구분 | Access Token | Refresh Token |
| 사용 빈도 | 매 API 요청마다 사용 | Access Token이 만료됐을 때만 사용 |
| 만료 시 | Refresh Token으로 재발급 요청 | 다시 로그인(아이디/비번 입력) 필요 |
| 저장 위치 | 메모리 | 아주 안전한 곳(서버 DB, HttpOnly 쿠키) |
| 기간 | 기간을 짧게 해서 탈취 피해 방지 | 유효기간 길게 유지 |
'Web' 카테고리의 다른 글
| OAuth 로그인 구현 (Google) (0) | 2026.05.01 |
|---|---|
| Refresh 토큰을 활용한 끊김 없는 로그인 유지하기 (0) | 2026.04.30 |
| 영화 웹사이트 - 3단계 ( 상세 페이지 구현 ) (0) | 2026.04.03 |
| 영화 웹사이트 - 2단계 (Router, Pagination) (0) | 2026.04.03 |
| 영화 웹사이트 - 1단계 (API 데이터 불러오기) (0) | 2026.04.03 |