로그인한 사용자만 쓸 수 있는 화면이 있어요. 요청은 Authorization 헤더에 "Bearer <토큰>" 형태로 토큰을 실어 보내요. 우리 인증 가드는 그 토큰에서 사용자 정보를 꺼내 다음 단계로 넘겨야 해요. JwtAuthGuard.verify(token) 를 완성하세요. 토큰은 점(.)으로 나뉜 세 조각이고, 가운데 조각이 { userId, role } 을 담은 사용자 정보예요. 거기서 userId 와 role 을 꺼내 돌려주면, 가드가 그걸 req.user 에 실어요. 비밀키는 환경변수 JWT_SECRET 에 있어요. Note: 토큰이 없거나 Bearer 형식이 아니면 이미 401 로 막혀요(가드 윗부분에 있어요). 발급(로그인) · 만료 · 갱신은 이 과제 범위 밖이에요.
NestJS 인증 가드를 완성하는 문제입니다. 요청에 실려 온 로그인 토큰에서 사용자 신원을 읽어 뒤 단계로 넘기고, 토큰이 안 실려 오면 막습니다. 외부 토큰 라이브러리 없이 Node 가 기본 제공하는 도구만 쓰고, 검증에 필요한 비밀키는 환경변수에서 읽습니다. 평소에 쓰는 토큰만으로는 멀쩡해 보이는 코드라, 받은 값을 얼마나 곧이곧대로 믿고 있는지 직접 들여다보는 게 핵심입니다.
이 문제는 "밖에서 들어온 로그인 토큰을 어디까지 믿어도 되는가"를 다룹니다. 토큰은 요청을 보낸 쪽이 직접 들고 오는 값이라, 적힌 신원을 곧이곧대로 받아들이면 누가 중간에 손을 댔는지 알 도리가 없습니다. 이런 코드를 검증할 때는 평범한 토큰이 잘 통과하는지만 보지 말고, 손을 댄 토큰을 흘려 넣었을 때 그게 거부되는지를 직접 확인하는 습관이 중요합니다. 막혀야 할 값이 그냥 들어와 버리는 순간이 진짜 시험대입니다.