Skip to main content
Authorization filters complement Nest guards. Use a guard for authentication and coarse endpoint access; use an authorizer for record-level visibility.

Inline authorizer

Decorate the response DTO with @Authorize. The first argument is the HTTP request and the second describes the generated operation. todo-item.dto.ts
For collection requests, the authorization filter is merged with the client filter. For single-record, update, and delete requests it is passed as an additional service filter, preventing access to records owned by another user.

Authorizer class

Use an injectable class for more involved rules: todo-item.authorizer.ts
todo-item.dto.ts
AuthorizationContext contains:
  • operationName: generated controller method name, such as queryMany or updateOne.
  • operationGroup: read, create, update, delete, or export.
  • readonly: whether the operation does not modify data.
  • many: whether the operation can affect multiple records.
The module registers authorizer providers for DTOs listed in either endpoints or dtos.

Add a guard

Ensure the request has a user before the authorizer runs:
Guards and authorizers can also be scoped through the read, create, update, delete, and export operation options. Edit this page