import { Observable } from "rxjs"; import { ExecutionContext, Injectable } from "@nestjs/common"; import { Reflector } from "@nestjs/core"; import { IS_PUBLIC_KEY } from "../decorators/public.decorator"; import { JwtAuthGuard } from "./jwt/jwtAuth.guard"; @Injectable() export class DefaultAuthGuard extends JwtAuthGuard { constructor(private readonly reflector: Reflector) { super(); } canActivate( context: ExecutionContext ): boolean | Promise | Observable { const isPublic = this.reflector.get( IS_PUBLIC_KEY, context.getHandler() ); if (isPublic) { return true; } return super.canActivate(context); } }