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',
});
}
}
Întrebări & Exemple de Cod:
ClassSerializerInterceptor și Mascarea DatelorAi o nelămurire despre utilizarea comenzii
ClassSerializerInterceptor și Mascarea Datelorsau 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.