피드로 돌아가기
Building an auth API that behaves like a real product
Dev.toDev.to
Security

Cookie 기반 Session 관리의 정합성 확보를 통한 Auth API 구현

Building an auth API that behaves like a real product

Abdul Halim2026년 5월 12일4intermediate

Context

단순한 Token 발급을 넘어 Email Verification, Password Reset, Session Invalidation 등 실서비스 수준의 Auth Flow 구현 필요성 대두. 특히 Client-side JS 접근을 차단한 Secure한 Session 관리 체계 구축을 목표로 함.

Technical Solution

  • Access Token과 별개로 httpOnly Cookie에 Refresh Token을 저장하여 XSS 공격 방어 및 보안성 강화
  • DB 내 Refresh Token Hash 저장 및 유효성 검증을 통한 Stateless한 JWT의 한계를 보완한 Session 제어
  • Logout 시 DB 내 Hash 제거와 동시에 Browser Cookie를 명시적 삭제하는 동기화 프로세스 설계
  • Cookie 설정 시 path, secure, sameSite 등 속성을 일치시켜 Browser의 Cookie 제거 메커니즘 상의 불일치 해결
  • NestJS, Drizzle ORM, PostgreSQL 조합으로 Type-safe한 데이터 레이어 및 API Contract 구축
  • Resend 기반 Email 전송 및 Swagger를 통한 API 명세 자동화로 통합 테스트 효율성 증대

1. Cookie Name을 상수로 정의하여 Set/Read/Clear 로직 간의 String 불일치 가능성 제거

2. Logout 구현 시 Server-side Session 무효화뿐 아니라 Client-side Cookie 삭제 속성(Path, Domain 등)의 일치 여부 검증

3. 배포 환경(Production vs Local)에 따른 APP_URL 및 환경 변수 설정의 정합성 사전 체크

4. 단순 단위 테스트를 넘어 Register → Verify → Login → Refresh → Logout으로 이어지는 E2E Flow 테스트 케이스 확보

원문 읽기