Login 요청
클라이언트가 username과 password를 제출합니다.
로그인 검증으로 access token을 발급하고, 보호 라우트 요청마다 JwtStrategy가 토큰을 검증해 req.user를 주입합니다.
클라이언트가 username과 password를 제출합니다.
자격 증명이 맞으면 validate 결과가 req.user가 됩니다.
sub, username, roles를 payload로 서명합니다.
보호 API 호출마다 Authorization 헤더에 토큰을 담습니다.
서명과 exp를 확인하고 유효하지 않으면 요청을 막습니다.
validate(payload)가 반환한 사용자 객체가 request에 연결됩니다.
컨트롤러는 req.user를 기준으로 프로필이나 권한 로직을 수행합니다.
정상 요청은 응답을 받고, 만료된 access token은 갱신 흐름으로 갑니다.
JwtStrategy 검증을 통과하고 req.user가 주입되어 보호 라우트가 실행됩니다.
refresh token이 유효하면 서버가 새 access token을 발급해 같은 요청 흐름으로 돌아갑니다.
서버는 401 Unauthorized를 반환하고 클라이언트는 로그인 화면으로 돌려보냅니다.
access token은 요청 인증을 빠르게 처리하고, refresh token은 만료 후 재발급 책임만 맡기면 보안과 사용자 경험을 분리해 관리할 수 있습니다.