ClassSerializerInterceptor și Mascarea Datelor în NestJS

pipeline NestJS 10.x / class-transformer Q&A / Distribuie cod

Eliminarea automată a atributelor marcate cu @Exclude() (parole, chei private) din obiectele returnate de controllere către client.

Sintaxă
@UseInterceptors(ClassSerializerInterceptor) / @Exclude() pe câmpuri

Pentru a împiedica trimiterea accidentală a hash-urilor de parole sau a cheilor API către frontend, NestJS furnizează ClassSerializerInterceptor.

Acesta interceptează entitățile sau DTO-urile returnate și le trece prin class-transformer, eliminând orice proprietate marcată cu @Exclude() și incluzând proprietățile speciale @Expose().

Exemplu: Mascarea automată a parolei folosind ClassSerializerInterceptor
import { Controller, Get, UseInterceptors, ClassSerializerInterceptor } from '@nestjs/common';
import { Exclude } from 'class-transformer';

export class UserEntity {
  id: number;
  email: string;

  @Exclude() // Acest câmp este șters automat din răspunsul JSON!
  passwordHash: string;

  constructor(partial: Partial) {
    Object.assign(this, partial);
  }
}

@Controller('users')
@UseInterceptors(ClassSerializerInterceptor)
export class UsersController {
  @Get('me')
  getMe(): UserEntity {
    return new UserEntity({
      id: 1,
      email: 'dexter@dexblog.ro',
      passwordHash: '$2b$12$secretehash123',
    });
  }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: ClassSerializerInterceptor și Mascarea Datelor

Ai o nelămurire despre utilizarea comenzii ClassSerializerInterceptor și Mascarea Datelor sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.