mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-13 19:30:30 +00:00
29 lines
784 B
TypeScript
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);
|
|
}
|
|
}
|