Refresh_token 테이블

컬럼 이름 의미
id Refresh Token 레코드의 ID (PK, 식별자) / DB 안에서 row 식별용
user_id 어떤 유저의 RT인지 나타내는 사용자 ID
token_hash 실제 Refresh Token 문자열 또는 그 해시 값
jti 이 토큰을 식별하는 고유 ID (JWT의 jti 클레임 값) / JWT Layer에서 토큰 식별용
family_id 동일 로그인/세션 계열에 속한 RT들을 묶기 위한 그룹 ID
expires_at RT 만료 시각
created_at RT 발급 시각
revoked 로그아웃, 보안 이슈 등으로 강제 무효화된 상태인지 여부

장점

단점

Refresh Token 저장 전략 비교

Refresh Token Rotation을 구현할 때, 서버 저장 방식은 크게 두 가지로 나눌 수 있습니다.

전략 1. 단순 방식 (UPDATE)

user_id | token_hash | expires_at
--------|------------|------------
1       | abc123     | 2025-01-07

user_id | token_hash | expires_at
--------|------------|------------
1       | xyz789     | 2025-01-07   ← token만 교체

RT 재발급 시 기존 row를 유지한 채, token_hash만 새로운 값으로 UPDATE 합니다.

단순하고 구현이 간편하지만, 토큰 추적이 불가능하다는 단점이 있습니다.