Files
bigcapital/packages/server/src/modules/Auth/guards/jwt.guard.ts
2025-04-07 11:51:24 +02:00

29 lines
784 B
TypeScript

import { ExecutionContext, Injectable, SetMetadata } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
import { AuthGuard } from '@nestjs/passport';
import { ClsService } from 'nestjs-cls';
import { IS_PUBLIC_ROUTE } from '../Auth.constants';
export const PublicRoute = () => SetMetadata(IS_PUBLIC_ROUTE, true);
@Injectable()
export class JwtAuthGuard extends AuthGuard('jwt') {
constructor(
private reflector: Reflector,
private readonly cls: ClsService,
) {
super();
}
canActivate(context: ExecutionContext) {
const isPublic = this.reflector.getAllAndOverride<boolean>(
IS_PUBLIC_ROUTE,
[context.getHandler(), context.getClass()],
);
if (isPublic) {
return true;
}
return super.canActivate(context);
}
}