Skip to content

feat: refresh token soft delete 및 재사용 감지 구현#23

Merged
ThinkKat merged 2 commits intomainfrom
dev
Mar 1, 2026
Merged

feat: refresh token soft delete 및 재사용 감지 구현#23
ThinkKat merged 2 commits intomainfrom
dev

Conversation

@ThinkKat
Copy link
Copy Markdown
Owner

@ThinkKat ThinkKat commented Mar 1, 2026

Summary

  • RefreshToken 엔티티에 revoked / revokedAt 필드 추가 (soft delete 전환)
  • SELECT FOR UPDATE 기반 동시성 제어 — 동시 rotation 경쟁 시 먼저 잡은 요청이 임자
  • revoked 토큰 재사용 감지 시 해당 유저 전체 토큰 무효화 + 경고 로그
  • 스케줄러 90일 보관 정책 및 cron 표현식을 application.yml로 외부 주입
  • RefreshTokenServiceTest 단위 테스트 7개 추가

DB Migration

backend/db/migrations/V004__add_refresh_token_revoke.sql 수동 적용 필요:

ALTER TABLE refresh_token
    ADD COLUMN revoked    BOOLEAN   NOT NULL DEFAULT FALSE,
    ADD COLUMN revoked_at TIMESTAMP;

Test plan

  • DB migration 적용 후 서버 기동 확인 (ddl-auto: validate)
  • 정상 token rotation 동작 확인
  • revoked 토큰 재사용 시 401 + 전체 무효화 확인
  • 만료 토큰 사용 시 401 확인

ThinkKat added 2 commits March 1, 2026 13:10
- RefreshToken 엔티티에 revoked/revokedAt 필드 추가
- SELECT FOR UPDATE 기반 동시성 제어 (먼저 잡은 요청이 임자)
- revoked 토큰 재사용 감지 시 해당 유저 전체 토큰 무효화
- 스케줄러 90일 보관 정책 외부 주입 (application.yml)
- RefreshTokenServiceTest 단위 테스트 7개 추가
refresh token soft delete 및 재사용 감지 구현
@ThinkKat ThinkKat merged commit dd9c24c into main Mar 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant