Skip to main content

AuthorizationDecoratorsUtils

@quik/authorization


@quik/authorization / AuthorizationDecoratorsUtils

Variable: AuthorizationDecoratorsUtils

const AuthorizationDecoratorsUtils: object

Defined in: authorization/src/decorator.utils.ts:114

Type Declaration

EndpointMiddleware

EndpointMiddleware: (security, endpointDecorator) => <This, Args, Return>(target, context) => MethodDecoratorType<This, Args, Return>

Wraps an endpoint decorator with authorization metadata to secure API endpoints.

This function enhances existing endpoint decorators by adding security scheme information and marking the endpoint as requiring authentication. It registers the security scheme with the StrategiesStore to ensure it's included in API documentation.

Parameters

security

string | SecuritySchemeDecoratorOption

Name or configuration of the security scheme

endpointDecorator

MethodDecoratorType<any, any, any>

The underlying decorator to enhance

Returns

<This, Args, Return>(target, context) => MethodDecoratorType<This, Args, Return>

Example

// Create a secured endpoint decorator
const SecuredEndpoint = AuthorizationDecoratorsUtils.EndpointMiddleware(
"bearer",
HttpDecorators.Get("/secure-data")
);

// Apply to a controller method
@SecuredEndpoint
async getSecureData() {
return { data: "This is protected" };
}

See

RouteMiddleware For applying authorization to an entire route class

RouteMiddleware

RouteMiddleware: <Class>(security, routeDecorator) => (Value, context) => Class

Applies authorization metadata to an entire route class, securing all endpoints within it.

This function enhances route class decorators by adding security scheme information and marking all endpoints in the route as requiring authentication. It registers the security scheme with the StrategiesStore to ensure it's included in API documentation.

Type Parameters

Class

Class extends Constructor<QRoute>

Parameters

security

string | SecuritySchemeDecoratorOption

Name or configuration of the security scheme

routeDecorator

(Value, context) => Class

Decorator applied on the route class

Returns

(Value, context) => Class

Example

// Create a secured route decorator
const SecuredRoute = AuthorizationDecoratorsUtils.RouteMiddleware(
"bearer",
HttpDecorators.Route("/admin")
);

// Apply to a controller class
@SecuredRoute
export class AdminController extends QRoute {
// All methods in this class will require authentication
@HttpDecorators.Get("/dashboard")
async getDashboard() {
return { stats: "Admin dashboard data" };
}
}

See

EndpointMiddleware For applying authorization to individual endpoints