UNPKG

nest-authify

Version:

Complete authentication and authorization package for NestJS - Monolith and Microservices ready with OAuth, JWT, Redis sessions

34 lines 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Auth = Auth; const common_1 = require("@nestjs/common"); const swagger_1 = require("@nestjs/swagger"); const jwt_auth_guard_1 = require("../guards/jwt-auth.guard"); const roles_guard_1 = require("../guards/roles.guard"); const permissions_guard_1 = require("../guards/permissions.guard"); const public_decorator_1 = require("./public.decorator"); const roles_decorator_1 = require("./roles.decorator"); const permissions_decorator_1 = require("./permissions.decorator"); function Auth(options = {}) { const decorators = []; if (options.public) { decorators.push((0, public_decorator_1.Public)()); return (0, common_1.applyDecorators)(...decorators); } const guards = [jwt_auth_guard_1.JwtAuthGuard, roles_guard_1.RolesGuard, permissions_guard_1.PermissionsGuard]; if (options.guards && options.guards.length > 0) { guards.push(...options.guards); } decorators.push((0, common_1.UseGuards)(...guards)); if (options.roles && options.roles.length > 0) { decorators.push((0, roles_decorator_1.Roles)(...options.roles)); } if (options.permissions && options.permissions.length > 0) { decorators.push((0, permissions_decorator_1.Permissions)(...options.permissions)); } if (options.swagger !== false) { decorators.push((0, swagger_1.ApiBearerAuth)(), (0, swagger_1.ApiUnauthorizedResponse)({ description: 'Unauthorized' })); } return (0, common_1.applyDecorators)(...decorators); } //# sourceMappingURL=auth.decorator.js.map