import { Reflector } from '@nestjs/core' import { ExecutionContext, Injectable } from '@nestjs/common' import { Observable } from 'rxjs' import { AuthGuard } from '@nestjs/passport' @Injectable() export class JwtGuard extends AuthGuard('jwt') { constructor(private reflector: Reflector) { super() } canActivate(context: ExecutionContext): Promise | boolean | Observable { const isPublic = this.reflector.get('isPublic', context.getHandler()) if (isPublic) { return true } return super.canActivate(context) } }