UNPKG

@point3/logto-module

Version:

포인트3 내부 logto Authentication 모듈입니다

17 lines (14 loc) 697 B
import { applyDecorators, UseGuards, SetMetadata } from '@nestjs/common'; import { LogtoTokenGuard } from './guard'; type LogtoProtectedOptions<T> = Partial<{ requiredScopes: string[], requiredRoles: (T | 'management-point3')[] }> export function LogtoProtected<RoleType>(options?: LogtoProtectedOptions<RoleType>): ReturnType<typeof applyDecorators> { const { requiredScopes, requiredRoles } = options ?? {}; return applyDecorators( UseGuards(LogtoTokenGuard), SetMetadata('requiredScopes', requiredScopes && requiredScopes.length > 0 ? requiredScopes : undefined), SetMetadata('requiredRoles', requiredRoles && requiredRoles.length > 0 ? requiredRoles : undefined), ); }