Auth Pipeline

회원가입, 로그인, 보호 API는 하나의 인증 파이프라인이다

Auth API는 로그인 폼 구현이 아니라 입력 검증, 비밀번호 해시, 토큰 발급, Guard 검증이 이어지는 보안 경계다.

DTO입력 검증

이메일과 비밀번호 형식을 제한한다.

hash비밀번호 저장

평문 저장 없이 bcrypt 해시만 남긴다.

tokenJWT 발급

sub, email 같은 식별 정보만 payload에 둔다.

strategy토큰 복원

요청마다 payload를 사용자 컨텍스트로 복원한다.

guard보호 API

req.user가 없으면 프로젝트 API에 들어오지 못한다.

구성 요소 책임 실패하면 검증 포인트
AuthService가입/로그인 처리 사용자 생성, 비밀번호 비교, 토큰 발급 중복 이메일, 해시 누락, 잘못된 토큰 응답에 passwordHash가 없는가
JwtStrategy토큰 복원 payload를 request user로 변환 보호 API가 익명 요청처럼 동작 만료/위조 토큰이 401인가
AuthGuard접근 제한 컨트롤러 진입 전 인증 강제 프로젝트/파일 API가 노출됨 profile, projects가 토큰 없이는 실패하는가

핵심: signup → login → JWT → guard → protected API가 같은 사용자 식별자를 유지해야 인증 경계가 맞다.