Backend2024년 12월 24일2분 읽기

NestJS 고급 패턴 — Guards, Interceptors, Pipes

YS
YoungSam
조회 1905

Guard — 인증/인가

@Injectable()
export class JwtGuard implements CanActivate {
  canActivate(context: ExecutionContext): boolean {
    const request = context.switchToHttp().getRequest();
    const token = request.headers.authorization?.split(" ")[1];
    if (!token) throw new UnauthorizedException();
    request.user = this.jwtService.verify(token);
    return true;
  }
}

Interceptor — 로깅/변환

@Injectable()
export class LoggingInterceptor implements NestInterceptor {
  intercept(context: ExecutionContext, next: CallHandler) {
    const now = Date.now();
    return next.handle().pipe(
      tap(() => console.log(`${Date.now() - now}ms`))
    );
  }
}
NestJSNode.jsArchitecture

댓글 0

아직 댓글이 없습니다.