728x90
반응형

RTR 2

[NestJS] 인증의 완성: Redis와 HttpOnly Cookie로 보안 철벽 치기

지난 포스팅에서는 Prisma와 RDB를 사용하여 RTR(Refresh Token Rotation) 시스템을 구현했습니다.지금까지 우리는 Prisma로 유저를 관리하고 Passport로 인증 로직을 구현했습니다.하지만 실무 레벨의 인증 시스템이 되려면 해결해야 할 두 가지 숙제가 남아있습니다.DB 부하 문제: Refresh Token처럼 빈번하게 쓰고 지워지는 데이터를 RDB에 저장해야 할까?보안 문제 (XSS): 토큰을 프론트엔드의 localStorage에 저장해도 안전할까?오늘 우리는 Redis를 도입해 DB 부하를 없애고, HttpOnly Cookie를 적용해 스크립트 공격(XSS)을 원천 봉쇄하는 방법을, 실제 t사이드 프로젝트의 서비스 코드를 기반으로 알아보겠습니다.1. Prisma Schema..

Backend/NestJs 2026.01.02

[NestJS] Refresh Token Rotation(RTR) 구현 (Prisma + Passport)

지난 포스팅까지 우리는 JWT Access Token을 발급하고 검증하는 기초적인 인증 시스템을 만들었습니다.하지만 실무에서는 Access Token 하나만으로는 부족합니다.유효기간이 짧으면 사용자가 불편하고, 길면 보안이 취약해지기 때문이죠.오늘은 이 딜레마를 해결하는 Refresh Token, 그중에서도 가장 보안 강도가 높은 RTR(Refresh Token Rotation) 방식을 구현해 보겠습니다.단순히 유저 테이블에 토큰 문자열 하나를 저장하는 방식이 아닙니다.별도의 토큰 관리 테이블을 두고, 사용된 토큰을 isRevoked (무효화) 처리하여 재사용 공격까지 완벽하게 방어하는 실무 레벨의 코드를 공개합니다.1. RTR(Refresh Token Rotation)이란?일반적인 Refresh Tok..

Backend/NestJs 2025.12.31